home *** CD-ROM | disk | FTP | other *** search
Unknown | 1999-09-27 | 13.1 KB |
view JSON data
|
view as text
|
open on a Mac
|
open on a PC
This file was not able to be converted.
This format is not currently supported by dexvert.
Confidence | Program | Detection | Match Type | Support
|
---|
100%
| file
| data
| default
|
|
hex view+--------+-------------------------+-------------------------+--------+--------+
|00000000| 00 00 00 00 00 00 00 00 | 52 d1 01 2f 2f 3d 3d 3d |........|R..//===|
|00000010| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000020| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000030| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000040| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000050| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 0d 0a 2f 2f 20 55 |========|==..// U|
|00000060| 57 69 6e 64 6f 77 4c 69 | 73 74 20 2d 20 61 20 67 |WindowLi|st - a g|
|00000070| 65 6e 65 72 69 63 20 6c | 69 6e 6b 65 64 20 6c 69 |eneric l|inked li|
|00000080| 73 74 20 63 6c 61 73 73 | 0d 0a 2f 2f 3d 3d 3d 3d |st class|..//====|
|00000090| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000000a0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000000b0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000000c0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000000d0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 0d 0a 63 6c 61 73 73 |========|=..class|
|000000e0| 20 55 57 69 6e 64 6f 77 | 4c 69 73 74 20 65 78 74 | UWindow|List ext|
|000000f0| 65 6e 64 73 20 55 57 69 | 6e 64 6f 77 42 61 73 65 |ends UWi|ndowBase|
|00000100| 3b 0d 0a 0d 0a 76 61 72 | 20 55 57 69 6e 64 6f 77 |;....var| UWindow|
|00000110| 4c 69 73 74 09 4e 65 78 | 74 3b 0d 0a 76 61 72 20 |List.Nex|t;..var |
|00000120| 55 57 69 6e 64 6f 77 4c | 69 73 74 09 4c 61 73 74 |UWindowL|ist.Last|
|00000130| 3b 09 09 2f 2f 20 4f 6e | 6c 79 20 76 61 6c 69 64 |;..// On|ly valid|
|00000140| 20 66 6f 72 20 73 65 6e | 74 69 6e 65 6c 0d 0a 76 | for sen|tinel..v|
|00000150| 61 72 20 55 57 69 6e 64 | 6f 77 4c 69 73 74 09 50 |ar UWind|owList.P|
|00000160| 72 65 76 3b 0d 0a 76 61 | 72 20 55 57 69 6e 64 6f |rev;..va|r UWindo|
|00000170| 77 4c 69 73 74 09 53 65 | 6e 74 69 6e 65 6c 3b 0d |wList.Se|ntinel;.|
|00000180| 0a 76 61 72 20 69 6e 74 | 09 09 09 49 6e 74 65 72 |.var int|...Inter|
|00000190| 6e 61 6c 43 6f 75 6e 74 | 3b 0d 0a 76 61 72 20 69 |nalCount|;..var i|
|000001a0| 6e 74 09 09 09 46 61 73 | 74 53 68 6f 77 6e 43 6f |nt...Fas|tShownCo|
|000001b0| 75 6e 74 3b 0d 0a 76 61 | 72 20 62 6f 6f 6c 09 09 |unt;..va|r bool..|
|000001c0| 62 49 6e 74 65 72 6e 61 | 6c 53 68 6f 77 6e 3b 0d |bInterna|lShown;.|
|000001d0| 0a 76 61 72 20 62 6f 6f | 6c 09 09 62 49 74 65 6d |.var boo|l..bItem|
|000001e0| 4f 72 64 65 72 43 68 61 | 6e 67 65 64 3b 0d 0a 0d |OrderCha|nged;...|
|000001f0| 0a 76 61 72 20 62 6f 6f | 6c 09 09 62 53 75 73 70 |.var boo|l..bSusp|
|00000200| 65 6e 64 61 62 6c 65 53 | 6f 72 74 3b 0d 0a 0d 0a |endableS|ort;....|
|00000210| 76 61 72 20 69 6e 74 09 | 09 09 43 6f 6d 70 61 72 |var int.|..Compar|
|00000220| 65 43 6f 75 6e 74 3b 0d | 0a 76 61 72 20 62 6f 6f |eCount;.|.var boo|
|00000230| 6c 09 09 62 53 6f 72 74 | 53 75 73 70 65 6e 64 65 |l..bSort|Suspende|
|00000240| 64 3b 0d 0a 76 61 72 20 | 55 57 69 6e 64 6f 77 4c |d;..var |UWindowL|
|00000250| 69 73 74 20 43 75 72 72 | 65 6e 74 53 6f 72 74 49 |ist Curr|entSortI|
|00000260| 74 65 6d 3b 0d 0a 0d 0a | 2f 2f 20 42 69 6e 61 72 |tem;....|// Binar|
|00000270| 79 20 74 72 65 65 20 76 | 61 72 69 61 62 6c 65 73 |y tree v|ariables|
|00000280| 20 66 6f 72 20 73 65 6e | 74 69 6e 65 6c 0d 0a 76 | for sen|tinel..v|
|00000290| 61 72 20 62 6f 6f 6c 09 | 09 62 54 72 65 65 53 6f |ar bool.|.bTreeSo|
|000002a0| 72 74 3b 0d 0a 0d 0a 0d | 0a 2f 2f 20 42 69 6e 61 |rt;.....|.// Bina|
|000002b0| 72 79 20 74 72 65 65 20 | 76 61 72 69 61 62 6c 65 |ry tree |variable|
|000002c0| 73 20 66 6f 72 20 65 61 | 63 68 20 65 6c 65 6d 65 |s for ea|ch eleme|
|000002d0| 6e 74 0d 0a 76 61 72 20 | 55 57 69 6e 64 6f 77 4c |nt..var |UWindowL|
|000002e0| 69 73 74 20 42 72 61 6e | 63 68 4c 65 66 74 3b 0d |ist Bran|chLeft;.|
|000002f0| 0a 76 61 72 20 55 57 69 | 6e 64 6f 77 4c 69 73 74 |.var UWi|ndowList|
|00000300| 20 42 72 61 6e 63 68 52 | 69 67 68 74 3b 0d 0a 76 | BranchR|ight;..v|
|00000310| 61 72 20 55 57 69 6e 64 | 6f 77 4c 69 73 74 20 50 |ar UWind|owList P|
|00000320| 61 72 65 6e 74 4e 6f 64 | 65 3b 0d 0a 0d 0a 2f 2a |arentNod|e;..../*|
|00000330| 20 54 72 65 65 20 53 6f | 72 74 69 6e 67 3a 0d 0a | Tree So|rting:..|
|00000340| 0d 0a 2d 20 49 74 65 6d | 73 20 6d 75 73 74 20 62 |..- Item|s must b|
|00000350| 65 20 61 64 64 65 64 20 | 77 69 74 68 20 41 70 70 |e added |with App|
|00000360| 65 6e 64 49 74 65 6d 28 | 29 0d 0a 2d 20 49 74 65 |endItem(|)..- Ite|
|00000370| 6d 73 20 77 68 69 63 68 | 20 72 65 71 75 69 72 65 |ms which| require|
|00000380| 20 72 65 73 6f 72 74 69 | 6e 67 20 6d 75 73 74 20 | resorti|ng must |
|00000390| 63 61 6c 6c 20 4d 6f 76 | 65 49 74 65 6d 53 6f 72 |call Mov|eItemSor|
|000003a0| 74 65 64 28 29 0d 0a 2d | 20 53 68 6f 75 6c 64 20 |ted()..-| Should |
|000003b0| 63 61 6c 6c 20 54 69 63 | 6b 20 61 6e 64 20 73 65 |call Tic|k and se|
|000003c0| 74 20 62 53 75 73 70 65 | 6e 64 61 62 6c 65 53 6f |t bSuspe|ndableSo|
|000003d0| 72 74 20 2d 20 66 6f 72 | 20 6c 61 72 67 65 20 73 |rt - for| large s|
|000003e0| 6f 72 74 73 21 0d 0a 0d | 0a 2a 2f 0d 0a 0d 0a 0d |orts!...|.*/.....|
|000003f0| 0a 2f 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 20 54 68 65 |./******|**** The|
|00000400| 73 65 20 74 68 69 6e 67 | 73 20 63 61 6e 20 62 65 |se thing|s can be|
|00000410| 20 63 61 6c 6c 65 64 20 | 6f 6e 20 61 6e 79 20 65 | called |on any e|
|00000420| 6c 65 6d 65 6e 74 20 2a | 2a 2a 2a 2a 2a 2a 2a 2a |lement *|********|
|00000430| 2a 2f 0d 0a 0d 0a 66 75 | 6e 63 74 69 6f 6e 20 55 |*/....fu|nction U|
|00000440| 57 69 6e 64 6f 77 4c 69 | 73 74 20 43 72 65 61 74 |WindowLi|st Creat|
|00000450| 65 49 74 65 6d 28 43 6c | 61 73 73 3c 55 57 69 6e |eItem(Cl|ass<UWin|
|00000460| 64 6f 77 4c 69 73 74 3e | 20 43 29 0d 0a 7b 0d 0a |dowList>| C)..{..|
|00000470| 09 6c 6f 63 61 6c 20 55 | 57 69 6e 64 6f 77 4c 69 |.local U|WindowLi|
|00000480| 73 74 20 4e 65 77 45 6c | 65 6d 65 6e 74 3b 0d 0a |st NewEl|ement;..|
|00000490| 0d 0a 09 4e 65 77 45 6c | 65 6d 65 6e 74 20 3d 20 |...NewEl|ement = |
|000004a0| 4e 65 77 20 43 3b 0d 0a | 09 4e 65 77 45 6c 65 6d |New C;..|.NewElem|
|000004b0| 65 6e 74 2e 62 49 6e 74 | 65 72 6e 61 6c 53 68 6f |ent.bInt|ernalSho|
|000004c0| 77 6e 20 3d 20 54 72 75 | 65 3b 0d 0a 0d 0a 09 72 |wn = Tru|e;.....r|
|000004d0| 65 74 75 72 6e 20 4e 65 | 77 45 6c 65 6d 65 6e 74 |eturn Ne|wElement|
|000004e0| 3b 0d 0a 7d 0d 0a 0d 0a | 66 75 6e 63 74 69 6f 6e |;..}....|function|
|000004f0| 20 47 72 61 66 74 4c 65 | 66 74 28 55 57 69 6e 64 | GraftLe|ft(UWind|
|00000500| 6f 77 4c 69 73 74 20 4e | 65 77 4c 65 66 74 29 0d |owList N|ewLeft).|
|00000510| 0a 7b 0d 0a 09 61 73 73 | 65 72 74 28 53 65 6e 74 |.{...ass|ert(Sent|
|00000520| 69 6e 65 6c 2e 62 54 72 | 65 65 53 6f 72 74 29 3b |inel.bTr|eeSort);|
|00000530| 0d 0a 0d 0a 09 42 72 61 | 6e 63 68 4c 65 66 74 20 |.....Bra|nchLeft |
|00000540| 3d 20 4e 65 77 4c 65 66 | 74 3b 0d 0a 09 69 66 28 |= NewLef|t;...if(|
|00000550| 4e 65 77 4c 65 66 74 20 | 21 3d 20 4e 6f 6e 65 29 |NewLeft |!= None)|
|00000560| 0d 0a 09 09 4e 65 77 4c | 65 66 74 2e 50 61 72 65 |....NewL|eft.Pare|
|00000570| 6e 74 4e 6f 64 65 20 3d | 20 53 65 6c 66 3b 0d 0a |ntNode =| Self;..|
|00000580| 7d 0d 0a 0d 0a 66 75 6e | 63 74 69 6f 6e 20 47 72 |}....fun|ction Gr|
|00000590| 61 66 74 52 69 67 68 74 | 28 55 57 69 6e 64 6f 77 |aftRight|(UWindow|
|000005a0| 4c 69 73 74 20 4e 65 77 | 52 69 67 68 74 29 0d 0a |List New|Right)..|
|000005b0| 7b 0d 0a 09 61 73 73 65 | 72 74 28 53 65 6e 74 69 |{...asse|rt(Senti|
|000005c0| 6e 65 6c 2e 62 54 72 65 | 65 53 6f 72 74 29 3b 0d |nel.bTre|eSort);.|
|000005d0| 0a 0d 0a 09 42 72 61 6e | 63 68 52 69 67 68 74 20 |....Bran|chRight |
|000005e0| 3d 20 4e 65 77 52 69 67 | 68 74 3b 0d 0a 09 69 66 |= NewRig|ht;...if|
|000005f0| 28 4e 65 77 52 69 67 68 | 74 20 21 3d 20 4e 6f 6e |(NewRigh|t != Non|
|00000600| 65 29 0d 0a 09 09 4e 65 | 77 52 69 67 68 74 2e 50 |e)....Ne|wRight.P|
|00000610| 61 72 65 6e 74 4e 6f 64 | 65 20 3d 20 53 65 6c 66 |arentNod|e = Self|
|00000620| 3b 0d 0a 7d 0d 0a 0d 0a | 2f 2f 20 52 65 74 75 72 |;..}....|// Retur|
|00000630| 6e 20 72 69 67 68 74 6d | 6f 73 74 20 63 68 69 6c |n rightm|ost chil|
|00000640| 64 20 6f 66 20 73 75 62 | 74 72 65 65 0d 0a 66 75 |d of sub|tree..fu|
|00000650| 6e 63 74 69 6f 6e 20 55 | 57 69 6e 64 6f 77 4c 69 |nction U|WindowLi|
|00000660| 73 74 20 52 69 67 68 74 | 4d 6f 73 74 28 29 0d 0a |st Right|Most()..|
|00000670| 7b 0d 0a 09 6c 6f 63 61 | 6c 20 55 57 69 6e 64 6f |{...loca|l UWindo|
|00000680| 77 4c 69 73 74 20 4c 3b | 0d 0a 0d 0a 09 61 73 73 |wList L;|.....ass|
|00000690| 65 72 74 28 53 65 6e 74 | 69 6e 65 6c 2e 62 54 72 |ert(Sent|inel.bTr|
|000006a0| 65 65 53 6f 72 74 29 3b | 0d 0a 0d 0a 09 69 66 28 |eeSort);|.....if(|
|000006b0| 42 72 61 6e 63 68 52 69 | 67 68 74 20 3d 3d 20 4e |BranchRi|ght == N|
|000006c0| 6f 6e 65 29 0d 0a 09 09 | 72 65 74 75 72 6e 20 4e |one)....|return N|
|000006d0| 6f 6e 65 3b 0d 0a 0d 0a | 09 4c 20 3d 20 53 65 6c |one;....|.L = Sel|
|000006e0| 66 3b 0d 0a 09 77 68 69 | 6c 65 28 4c 2e 42 72 61 |f;...whi|le(L.Bra|
|000006f0| 6e 63 68 52 69 67 68 74 | 20 21 3d 20 4e 6f 6e 65 |nchRight| != None|
|00000700| 29 0d 0a 09 09 4c 20 3d | 20 4c 2e 42 72 61 6e 63 |)....L =| L.Branc|
|00000710| 68 52 69 67 68 74 3b 0d | 0a 0d 0a 09 72 65 74 75 |hRight;.|....retu|
|00000720| 72 6e 20 4c 3b 0d 0a 7d | 0d 0a 0d 0a 2f 2f 20 52 |rn L;..}|....// R|
|00000730| 65 74 75 72 6e 20 6c 65 | 66 74 6d 6f 73 74 20 63 |eturn le|ftmost c|
|00000740| 68 69 6c 64 20 6f 66 20 | 73 75 62 74 72 65 65 0d |hild of |subtree.|
|00000750| 0a 66 75 6e 63 74 69 6f | 6e 20 55 57 69 6e 64 6f |.functio|n UWindo|
|00000760| 77 4c 69 73 74 20 4c 65 | 66 74 4d 6f 73 74 28 29 |wList Le|ftMost()|
|00000770| 0d 0a 7b 0d 0a 09 6c 6f | 63 61 6c 20 55 57 69 6e |..{...lo|cal UWin|
|00000780| 64 6f 77 4c 69 73 74 20 | 4c 3b 0d 0a 0d 0a 09 61 |dowList |L;.....a|
|00000790| 73 73 65 72 74 28 53 65 | 6e 74 69 6e 65 6c 2e 62 |ssert(Se|ntinel.b|
|000007a0| 54 72 65 65 53 6f 72 74 | 29 3b 0d 0a 0d 0a 09 69 |TreeSort|);.....i|
|000007b0| 66 28 42 72 61 6e 63 68 | 4c 65 66 74 20 3d 3d 20 |f(Branch|Left == |
|000007c0| 4e 6f 6e 65 29 0d 0a 09 | 09 72 65 74 75 72 6e 20 |None)...|.return |
|000007d0| 4e 6f 6e 65 3b 0d 0a 0d | 0a 09 4c 20 3d 20 53 65 |None;...|..L = Se|
|000007e0| 6c 66 3b 0d 0a 09 77 68 | 69 6c 65 28 4c 2e 42 72 |lf;...wh|ile(L.Br|
|000007f0| 61 6e 63 68 4c 65 66 74 | 20 21 3d 20 4e 6f 6e 65 |anchLeft| != None|
|00000800| 29 0d 0a 09 09 4c 20 3d | 20 4c 2e 42 72 61 6e 63 |)....L =| L.Branc|
|00000810| 68 4c 65 66 74 3b 0d 0a | 0d 0a 09 72 65 74 75 72 |hLeft;..|...retur|
|00000820| 6e 20 4c 3b 0d 0a 7d 0d | 0a 0d 0a 66 75 6e 63 74 |n L;..}.|...funct|
|00000830| 69 6f 6e 20 52 65 6d 6f | 76 65 28 29 0d 0a 7b 0d |ion Remo|ve()..{.|
|00000840| 0a 09 6c 6f 63 61 6c 20 | 55 57 69 6e 64 6f 77 4c |..local |UWindowL|
|00000850| 69 73 74 20 54 3b 0d 0a | 0d 0a 09 69 66 28 4e 65 |ist T;..|...if(Ne|
|00000860| 78 74 20 21 3d 20 4e 6f | 6e 65 29 0d 0a 09 09 4e |xt != No|ne)....N|
|00000870| 65 78 74 2e 50 72 65 76 | 20 3d 20 50 72 65 76 3b |ext.Prev| = Prev;|
|00000880| 0d 0a 09 0d 0a 09 69 66 | 28 50 72 65 76 20 21 3d |......if|(Prev !=|
|00000890| 20 4e 6f 6e 65 29 0d 0a | 09 09 50 72 65 76 2e 4e | None)..|..Prev.N|
|000008a0| 65 78 74 20 3d 20 4e 65 | 78 74 3b 0d 0a 09 0d 0a |ext = Ne|xt;.....|
|000008b0| 09 69 66 28 53 65 6e 74 | 69 6e 65 6c 20 21 3d 20 |.if(Sent|inel != |
|000008c0| 4e 6f 6e 65 29 0d 0a 09 | 7b 0d 0a 09 09 69 66 28 |None)...|{....if(|
|000008d0| 53 65 6e 74 69 6e 65 6c | 2e 62 54 72 65 65 53 6f |Sentinel|.bTreeSo|
|000008e0| 72 74 20 26 26 20 50 61 | 72 65 6e 74 4e 6f 64 65 |rt && Pa|rentNode|
|000008f0| 21 3d 4e 6f 6e 65 29 0d | 0a 09 09 7b 0d 0a 09 09 |!=None).|...{....|
|00000900| 09 69 66 28 42 72 61 6e | 63 68 4c 65 66 74 20 21 |.if(Bran|chLeft !|
|00000910| 3d 20 4e 6f 6e 65 29 0d | 0a 09 09 09 7b 0d 0a 09 |= None).|....{...|
|00000920| 09 09 09 69 66 28 50 61 | 72 65 6e 74 4e 6f 64 65 |...if(Pa|rentNode|
|00000930| 2e 42 72 61 6e 63 68 4c | 65 66 74 20 3d 3d 20 53 |.BranchL|eft == S|
|00000940| 65 6c 66 29 0d 0a 09 09 | 09 09 09 50 61 72 65 6e |elf)....|...Paren|
|00000950| 74 4e 6f 64 65 2e 47 72 | 61 66 74 4c 65 66 74 28 |tNode.Gr|aftLeft(|
|00000960| 42 72 61 6e 63 68 4c 65 | 66 74 29 3b 0d 0a 09 09 |BranchLe|ft);....|
|00000970| 09 09 69 66 28 50 61 72 | 65 6e 74 4e 6f 64 65 2e |..if(Par|entNode.|
|00000980| 42 72 61 6e 63 68 52 69 | 67 68 74 20 3d 3d 20 53 |BranchRi|ght == S|
|00000990| 65 6c 66 29 0d 0a 09 09 | 09 09 09 50 61 72 65 6e |elf)....|...Paren|
|000009a0| 74 4e 6f 64 65 2e 47 72 | 61 66 74 52 69 67 68 74 |tNode.Gr|aftRight|
|000009b0| 28 42 72 61 6e 63 68 4c | 65 66 74 29 3b 0d 0a 0d |(BranchL|eft);...|
|000009c0| 0a 09 09 09 09 2f 2f 20 | 49 66 20 77 65 20 68 61 |.....// |If we ha|
|000009d0| 64 20 61 20 72 69 67 68 | 74 20 62 72 61 6e 63 68 |d a righ|t branch|
|000009e0| 20 77 65 20 62 65 74 74 | 65 72 20 6d 6f 76 65 20 | we bett|er move |
|000009f0| 69 74 0d 0a 09 09 09 09 | 2f 2f 20 69 6e 74 6f 20 |it......|// into |
|00000a00| 74 68 65 20 66 61 72 20 | 72 69 67 68 74 20 6f 66 |the far |right of|
|00000a10| 20 74 68 65 20 6c 65 66 | 74 20 62 72 61 6e 63 68 | the lef|t branch|
|00000a20| 2e 0d 0a 0d 0a 09 09 09 | 09 54 20 3d 20 42 72 61 |........|.T = Bra|
|00000a30| 6e 63 68 4c 65 66 74 2e | 52 69 67 68 74 6d 6f 73 |nchLeft.|Rightmos|
|00000a40| 74 28 29 3b 0d 0a 09 09 | 09 09 69 66 28 54 20 21 |t();....|..if(T !|
|00000a50| 3d 20 4e 6f 6e 65 29 0d | 0a 09 09 09 09 09 54 2e |= None).|......T.|
|00000a60| 47 72 61 66 74 52 69 67 | 68 74 28 42 72 61 6e 63 |GraftRig|ht(Branc|
|00000a70| 68 52 69 67 68 74 29 3b | 0d 0a 09 09 09 7d 0d 0a |hRight);|.....}..|
|00000a80| 09 09 09 65 6c 73 65 0d | 0a 09 09 09 7b 0d 0a 09 |...else.|....{...|
|00000a90| 09 09 09 69 66 28 50 61 | 72 65 6e 74 4e 6f 64 65 |...if(Pa|rentNode|
|00000aa0| 2e 42 72 61 6e 63 68 4c | 65 66 74 20 3d 3d 20 53 |.BranchL|eft == S|
|00000ab0| 65 6c 66 29 0d 0a 09 09 | 09 09 09 50 61 72 65 6e |elf)....|...Paren|
|00000ac0| 74 4e 6f 64 65 2e 47 72 | 61 66 74 4c 65 66 74 28 |tNode.Gr|aftLeft(|
|00000ad0| 42 72 61 6e 63 68 52 69 | 67 68 74 29 3b 0d 0a 09 |BranchRi|ght);...|
|00000ae0| 09 09 09 69 66 28 50 61 | 72 65 6e 74 4e 6f 64 65 |...if(Pa|rentNode|
|00000af0| 2e 42 72 61 6e 63 68 52 | 69 67 68 74 20 3d 3d 20 |.BranchR|ight == |
|00000b00| 53 65 6c 66 29 0d 0a 09 | 09 09 09 09 50 61 72 65 |Self)...|....Pare|
|00000b10| 6e 74 4e 6f 64 65 2e 47 | 72 61 66 74 52 69 67 68 |ntNode.G|raftRigh|
|00000b20| 74 28 42 72 61 6e 63 68 | 52 69 67 68 74 29 3b 0d |t(Branch|Right);.|
|00000b30| 0a 0d 0a 09 09 09 09 2f | 2f 20 6e 6f 20 6c 65 66 |......./|/ no lef|
|00000b40| 74 20 62 72 61 6e 63 68 | 20 74 6f 20 77 6f 72 72 |t branch| to worr|
|00000b50| 79 20 61 62 6f 75 74 2e | 0d 0a 09 09 09 7d 0d 0a |y about.|.....}..|
|00000b60| 09 0d 0a 09 09 09 50 61 | 72 65 6e 74 4e 6f 64 65 |......Pa|rentNode|
|00000b70| 20 3d 20 4e 6f 6e 65 3b | 0d 0a 09 09 09 42 72 61 | = None;|.....Bra|
|00000b80| 6e 63 68 4c 65 66 74 20 | 3d 20 4e 6f 6e 65 3b 0d |nchLeft |= None;.|
|00000b90| 0a 09 09 09 42 72 61 6e | 63 68 52 69 67 68 74 20 |....Bran|chRight |
|00000ba0| 3d 20 4e 6f 6e 65 3b 0d | 0a 09 09 7d 0d 0a 0d 0a |= None;.|...}....|
|00000bb0| 09 09 53 65 6e 74 69 6e | 65 6c 2e 49 6e 74 65 72 |..Sentin|el.Inter|
|00000bc0| 6e 61 6c 43 6f 75 6e 74 | 2d 2d 3b 0d 0a 09 09 69 |nalCount|--;....i|
|00000bd0| 66 28 62 49 6e 74 65 72 | 6e 61 6c 53 68 6f 77 6e |f(bInter|nalShown|
|00000be0| 29 0d 0a 09 09 09 53 65 | 6e 74 69 6e 65 6c 2e 46 |).....Se|ntinel.F|
|00000bf0| 61 73 74 53 68 6f 77 6e | 43 6f 75 6e 74 2d 2d 3b |astShown|Count--;|
|00000c00| 0d 0a 0d 0a 09 09 53 65 | 6e 74 69 6e 65 6c 2e 62 |......Se|ntinel.b|
|00000c10| 49 74 65 6d 4f 72 64 65 | 72 43 68 61 6e 67 65 64 |ItemOrde|rChanged|
|00000c20| 20 3d 20 54 72 75 65 3b | 0d 0a 0d 0a 09 09 69 66 | = True;|......if|
|00000c30| 28 53 65 6e 74 69 6e 65 | 6c 2e 4c 61 73 74 20 3d |(Sentine|l.Last =|
|00000c40| 3d 20 53 65 6c 66 29 0d | 0a 09 09 09 53 65 6e 74 |= Self).|....Sent|
|00000c50| 69 6e 65 6c 2e 4c 61 73 | 74 20 3d 20 50 72 65 76 |inel.Las|t = Prev|
|00000c60| 3b 0d 0a 0d 0a 09 09 50 | 72 65 76 3d 4e 6f 6e 65 |;......P|rev=None|
|00000c70| 3b 0d 0a 09 09 4e 65 78 | 74 3d 4e 6f 6e 65 3b 0d |;....Nex|t=None;.|
|00000c80| 0a 09 0d 0a 09 2f 2a 09 | 53 65 6e 74 69 6e 65 6c |...../*.|Sentinel|
|00000c90| 2e 56 61 6c 69 64 61 74 | 65 28 29 3b 20 20 2a 2f |.Validat|e(); */|
|00000ca0| 0d 0a 09 09 53 65 6e 74 | 69 6e 65 6c 20 3d 20 4e |....Sent|inel = N|
|00000cb0| 6f 6e 65 3b 0d 0a 09 7d | 0d 0a 7d 0d 0a 0d 0a 66 |one;...}|..}....f|
|00000cc0| 75 6e 63 74 69 6f 6e 20 | 53 65 74 49 6e 74 65 72 |unction |SetInter|
|00000cd0| 6e 61 6c 53 68 6f 77 6e | 28 62 6f 6f 6c 20 62 53 |nalShown|(bool bS|
|00000ce0| 68 6f 77 49 74 65 6d 29 | 0d 0a 7b 0d 0a 09 69 66 |howItem)|..{...if|
|00000cf0| 28 53 65 6e 74 69 6e 65 | 6c 20 21 3d 20 4e 6f 6e |(Sentine|l != Non|
|00000d00| 65 29 0d 0a 09 7b 0d 0a | 09 09 69 66 28 21 62 49 |e)...{..|..if(!bI|
|00000d10| 6e 74 65 72 6e 61 6c 53 | 68 6f 77 6e 20 26 26 20 |nternalS|hown && |
|00000d20| 62 53 68 6f 77 49 74 65 | 6d 29 0d 0a 09 09 7b 0d |bShowIte|m)....{.|
|00000d30| 0a 09 09 09 53 65 6e 74 | 69 6e 65 6c 2e 46 61 73 |....Sent|inel.Fas|
|00000d40| 74 53 68 6f 77 6e 43 6f | 75 6e 74 2b 2b 3b 0d 0a |tShownCo|unt++;..|
|00000d50| 09 09 09 53 65 6e 74 69 | 6e 65 6c 2e 62 49 74 65 |...Senti|nel.bIte|
|00000d60| 6d 4f 72 64 65 72 43 68 | 61 6e 67 65 64 20 3d 20 |mOrderCh|anged = |
|00000d70| 54 72 75 65 3b 0d 0a 09 | 09 7d 0d 0a 09 09 0d 0a |True;...|.}......|
|00000d80| 09 09 69 66 28 21 62 53 | 68 6f 77 49 74 65 6d 20 |..if(!bS|howItem |
|00000d90| 26 26 20 62 49 6e 74 65 | 72 6e 61 6c 53 68 6f 77 |&& bInte|rnalShow|
|00000da0| 6e 29 0d 0a 09 09 7b 0d | 0a 09 09 09 53 65 6e 74 |n)....{.|....Sent|
|00000db0| 69 6e 65 6c 2e 46 61 73 | 74 53 68 6f 77 6e 43 6f |inel.Fas|tShownCo|
|00000dc0| 75 6e 74 2d 2d 3b 0d 0a | 09 09 09 53 65 6e 74 69 |unt--;..|...Senti|
|00000dd0| 6e 65 6c 2e 62 49 74 65 | 6d 4f 72 64 65 72 43 68 |nel.bIte|mOrderCh|
|00000de0| 61 6e 67 65 64 20 3d 20 | 54 72 75 65 3b 0d 0a 09 |anged = |True;...|
|00000df0| 09 7d 0d 0a 09 7d 0d 0a | 0d 0a 09 62 49 6e 74 65 |.}...}..|...bInte|
|00000e00| 72 6e 61 6c 53 68 6f 77 | 6e 20 3d 20 62 53 68 6f |rnalShow|n = bSho|
|00000e10| 77 49 74 65 6d 3b 0d 0a | 7d 0d 0a 0d 0a 66 75 6e |wItem;..|}....fun|
|00000e20| 63 74 69 6f 6e 20 69 6e | 74 20 43 6f 6d 70 61 72 |ction in|t Compar|
|00000e30| 65 28 55 57 69 6e 64 6f | 77 4c 69 73 74 20 54 2c |e(UWindo|wList T,|
|00000e40| 20 55 57 69 6e 64 6f 77 | 4c 69 73 74 20 42 29 0d | UWindow|List B).|
|00000e50| 0a 7b 0d 0a 09 2f 2f 20 | 64 65 63 6c 61 72 65 20 |.{...// |declare |
|00000e60| 61 63 74 75 61 6c 20 73 | 6f 72 74 20 6d 65 74 68 |actual s|ort meth|
|00000e70| 6f 64 20 69 6e 20 73 75 | 62 63 6c 61 73 73 0d 0a |od in su|bclass..|
|00000e80| 09 72 65 74 75 72 6e 20 | 30 3b 0d 0a 7d 0d 0a 0d |.return |0;..}...|
|00000e90| 0a 2f 2f 20 49 6e 73 65 | 72 74 73 20 61 20 6e 65 |.// Inse|rts a ne|
|00000ea0| 77 20 65 6c 65 6d 65 6e | 74 20 62 65 66 6f 72 65 |w elemen|t before|
|00000eb0| 20 75 73 2e 20 20 44 4f | 20 4e 4f 54 20 43 41 4c | us. DO| NOT CAL|
|00000ec0| 4c 20 6f 6e 20 74 68 65 | 20 73 65 6e 74 69 6e 65 |L on the| sentine|
|00000ed0| 6c 2e 0d 0a 66 75 6e 63 | 74 69 6f 6e 20 55 57 69 |l...func|tion UWi|
|00000ee0| 6e 64 6f 77 4c 69 73 74 | 20 49 6e 73 65 72 74 42 |ndowList| InsertB|
|00000ef0| 65 66 6f 72 65 28 43 6c | 61 73 73 3c 55 57 69 6e |efore(Cl|ass<UWin|
|00000f00| 64 6f 77 4c 69 73 74 3e | 20 43 29 0d 0a 7b 0d 0a |dowList>| C)..{..|
|00000f10| 09 6c 6f 63 61 6c 20 55 | 57 69 6e 64 6f 77 4c 69 |.local U|WindowLi|
|00000f20| 73 74 20 4e 65 77 45 6c | 65 6d 65 6e 74 3b 0d 0a |st NewEl|ement;..|
|00000f30| 0d 0a 09 4e 65 77 45 6c | 65 6d 65 6e 74 20 3d 20 |...NewEl|ement = |
|00000f40| 43 72 65 61 74 65 49 74 | 65 6d 28 43 29 3b 0d 0a |CreateIt|em(C);..|
|00000f50| 09 49 6e 73 65 72 74 49 | 74 65 6d 42 65 66 6f 72 |.InsertI|temBefor|
|00000f60| 65 28 4e 65 77 45 6c 65 | 6d 65 6e 74 29 3b 0d 0a |e(NewEle|ment);..|
|00000f70| 0d 0a 09 72 65 74 75 72 | 6e 20 4e 65 77 45 6c 65 |...retur|n NewEle|
|00000f80| 6d 65 6e 74 3b 0d 0a 7d | 0d 0a 0d 0a 66 75 6e 63 |ment;..}|....func|
|00000f90| 74 69 6f 6e 20 55 57 69 | 6e 64 6f 77 4c 69 73 74 |tion UWi|ndowList|
|00000fa0| 20 49 6e 73 65 72 74 41 | 66 74 65 72 28 43 6c 61 | InsertA|fter(Cla|
|00000fb0| 73 73 3c 55 57 69 6e 64 | 6f 77 4c 69 73 74 3e 20 |ss<UWind|owList> |
|00000fc0| 43 29 0d 0a 7b 0d 0a 09 | 6c 6f 63 61 6c 20 55 57 |C)..{...|local UW|
|00000fd0| 69 6e 64 6f 77 4c 69 73 | 74 20 4e 65 77 45 6c 65 |indowLis|t NewEle|
|00000fe0| 6d 65 6e 74 3b 0d 0a 0d | 0a 09 4e 65 77 45 6c 65 |ment;...|..NewEle|
|00000ff0| 6d 65 6e 74 20 3d 20 43 | 72 65 61 74 65 49 74 65 |ment = C|reateIte|
|00001000| 6d 28 43 29 3b 0d 0a 09 | 49 6e 73 65 72 74 49 74 |m(C);...|InsertIt|
|00001010| 65 6d 41 66 74 65 72 28 | 4e 65 77 45 6c 65 6d 65 |emAfter(|NewEleme|
|00001020| 6e 74 29 3b 0d 0a 0d 0a | 09 72 65 74 75 72 6e 20 |nt);....|.return |
|00001030| 4e 65 77 45 6c 65 6d 65 | 6e 74 3b 0d 0a 7d 0d 0a |NewEleme|nt;..}..|
|00001040| 0d 0a 0d 0a 2f 2f 20 49 | 6e 73 65 72 74 73 20 61 |....// I|nserts a|
|00001050| 6e 20 65 6c 65 6d 65 6e | 74 20 62 65 66 6f 72 65 |n elemen|t before|
|00001060| 20 75 73 2e 20 20 44 4f | 20 4e 4f 54 20 43 41 4c | us. DO| NOT CAL|
|00001070| 4c 20 6f 6e 20 74 68 65 | 20 73 65 6e 74 69 6e 65 |L on the| sentine|
|00001080| 6c 2e 0d 0a 66 75 6e 63 | 74 69 6f 6e 20 49 6e 73 |l...func|tion Ins|
|00001090| 65 72 74 49 74 65 6d 42 | 65 66 6f 72 65 28 55 57 |ertItemB|efore(UW|
|000010a0| 69 6e 64 6f 77 4c 69 73 | 74 20 4e 65 77 45 6c 65 |indowLis|t NewEle|
|000010b0| 6d 65 6e 74 29 0d 0a 7b | 0d 0a 09 61 73 73 65 72 |ment)..{|...asser|
|000010c0| 74 28 53 65 6e 74 69 6e | 65 6c 20 21 3d 20 53 65 |t(Sentin|el != Se|
|000010d0| 6c 66 29 3b 0d 0a 0d 0a | 09 4e 65 77 45 6c 65 6d |lf);....|.NewElem|
|000010e0| 65 6e 74 2e 42 72 61 6e | 63 68 4c 65 66 74 20 3d |ent.Bran|chLeft =|
|000010f0| 20 4e 6f 6e 65 3b 0d 0a | 09 4e 65 77 45 6c 65 6d | None;..|.NewElem|
|00001100| 65 6e 74 2e 42 72 61 6e | 63 68 52 69 67 68 74 20 |ent.Bran|chRight |
|00001110| 3d 20 4e 6f 6e 65 3b 0d | 0a 09 4e 65 77 45 6c 65 |= None;.|..NewEle|
|00001120| 6d 65 6e 74 2e 50 61 72 | 65 6e 74 4e 6f 64 65 20 |ment.Par|entNode |
|00001130| 3d 20 4e 6f 6e 65 3b 0d | 0a 09 4e 65 77 45 6c 65 |= None;.|..NewEle|
|00001140| 6d 65 6e 74 2e 53 65 6e | 74 69 6e 65 6c 20 3d 20 |ment.Sen|tinel = |
|00001150| 53 65 6e 74 69 6e 65 6c | 3b 09 0d 0a 09 4e 65 77 |Sentinel|;....New|
|00001160| 45 6c 65 6d 65 6e 74 2e | 42 72 61 6e 63 68 4c 65 |Element.|BranchLe|
|00001170| 66 74 20 3d 20 4e 6f 6e | 65 3b 0d 0a 09 4e 65 77 |ft = Non|e;...New|
|00001180| 45 6c 65 6d 65 6e 74 2e | 42 72 61 6e 63 68 52 69 |Element.|BranchRi|
|00001190| 67 68 74 20 3d 20 4e 6f | 6e 65 3b 0d 0a 09 4e 65 |ght = No|ne;...Ne|
|000011a0| 77 45 6c 65 6d 65 6e 74 | 2e 50 61 72 65 6e 74 4e |wElement|.ParentN|
|000011b0| 6f 64 65 20 3d 20 4e 6f | 6e 65 3b 0d 0a 09 4e 65 |ode = No|ne;...Ne|
|000011c0| 77 45 6c 65 6d 65 6e 74 | 2e 50 72 65 76 20 3d 20 |wElement|.Prev = |
|000011d0| 50 72 65 76 3b 09 0d 0a | 09 50 72 65 76 2e 4e 65 |Prev;...|.Prev.Ne|
|000011e0| 78 74 20 3d 20 4e 65 77 | 45 6c 65 6d 65 6e 74 3b |xt = New|Element;|
|000011f0| 0d 0a 09 50 72 65 76 20 | 3d 20 4e 65 77 45 6c 65 |...Prev |= NewEle|
|00001200| 6d 65 6e 74 3b 0d 0a 09 | 4e 65 77 45 6c 65 6d 65 |ment;...|NewEleme|
|00001210| 6e 74 2e 4e 65 78 74 20 | 3d 20 53 65 6c 66 3b 0d |nt.Next |= Self;.|
|00001220| 0a 0d 0a 09 69 66 28 53 | 65 6e 74 69 6e 65 6c 2e |....if(S|entinel.|
|00001230| 4e 65 78 74 20 3d 3d 20 | 53 65 6c 66 29 0d 0a 09 |Next == |Self)...|
|00001240| 09 53 65 6e 74 69 6e 65 | 6c 2e 4e 65 78 74 20 3d |.Sentine|l.Next =|
|00001250| 20 4e 65 77 45 6c 65 6d | 65 6e 74 3b 0d 0a 0d 0a | NewElem|ent;....|
|00001260| 09 53 65 6e 74 69 6e 65 | 6c 2e 49 6e 74 65 72 6e |.Sentine|l.Intern|
|00001270| 61 6c 43 6f 75 6e 74 2b | 2b 3b 0d 0a 09 69 66 28 |alCount+|+;...if(|
|00001280| 4e 65 77 45 6c 65 6d 65 | 6e 74 2e 62 49 6e 74 65 |NewEleme|nt.bInte|
|00001290| 72 6e 61 6c 53 68 6f 77 | 6e 29 0d 0a 09 09 53 65 |rnalShow|n)....Se|
|000012a0| 6e 74 69 6e 65 6c 2e 46 | 61 73 74 53 68 6f 77 6e |ntinel.F|astShown|
|000012b0| 43 6f 75 6e 74 2b 2b 3b | 0d 0a 09 53 65 6e 74 69 |Count++;|...Senti|
|000012c0| 6e 65 6c 2e 62 49 74 65 | 6d 4f 72 64 65 72 43 68 |nel.bIte|mOrderCh|
|000012d0| 61 6e 67 65 64 20 3d 20 | 54 72 75 65 3b 0d 0a 7d |anged = |True;..}|
|000012e0| 0d 0a 0d 0a 66 75 6e 63 | 74 69 6f 6e 20 49 6e 73 |....func|tion Ins|
|000012f0| 65 72 74 49 74 65 6d 41 | 66 74 65 72 28 55 57 69 |ertItemA|fter(UWi|
|00001300| 6e 64 6f 77 4c 69 73 74 | 20 4e 65 77 45 6c 65 6d |ndowList| NewElem|
|00001310| 65 6e 74 2c 20 6f 70 74 | 69 6f 6e 61 6c 20 62 6f |ent, opt|ional bo|
|00001320| 6f 6c 20 62 43 68 65 63 | 6b 53 68 6f 77 49 74 65 |ol bChec|kShowIte|
|00001330| 6d 29 0d 0a 7b 0d 0a 09 | 6c 6f 63 61 6c 20 55 57 |m)..{...|local UW|
|00001340| 69 6e 64 6f 77 4c 69 73 | 74 20 4e 3b 0d 0a 09 0d |indowLis|t N;....|
|00001350| 0a 09 4e 20 3d 20 4e 65 | 78 74 3b 0d 0a 09 69 66 |..N = Ne|xt;...if|
|00001360| 28 62 43 68 65 63 6b 53 | 68 6f 77 49 74 65 6d 29 |(bCheckS|howItem)|
|00001370| 0d 0a 09 09 77 68 69 6c | 65 28 4e 20 21 3d 20 4e |....whil|e(N != N|
|00001380| 6f 6e 65 20 26 26 20 21 | 4e 2e 53 68 6f 77 54 68 |one && !|N.ShowTh|
|00001390| 69 73 49 74 65 6d 28 29 | 29 0d 0a 09 09 09 4e 20 |isItem()|).....N |
|000013a0| 3d 20 4e 2e 4e 65 78 74 | 3b 20 0d 0a 0d 0a 09 69 |= N.Next|; .....i|
|000013b0| 66 28 4e 20 21 3d 20 4e | 6f 6e 65 29 0d 0a 09 09 |f(N != N|one)....|
|000013c0| 4e 2e 49 6e 73 65 72 74 | 49 74 65 6d 42 65 66 6f |N.Insert|ItemBefo|
|000013d0| 72 65 28 4e 65 77 45 6c | 65 6d 65 6e 74 29 3b 0d |re(NewEl|ement);.|
|000013e0| 0a 09 65 6c 73 65 0d 0a | 09 09 53 65 6e 74 69 6e |..else..|..Sentin|
|000013f0| 65 6c 2e 44 6f 41 70 70 | 65 6e 64 49 74 65 6d 28 |el.DoApp|endItem(|
|00001400| 4e 65 77 45 6c 65 6d 65 | 6e 74 29 3b 0d 0a 09 53 |NewEleme|nt);...S|
|00001410| 65 6e 74 69 6e 65 6c 2e | 62 49 74 65 6d 4f 72 64 |entinel.|bItemOrd|
|00001420| 65 72 43 68 61 6e 67 65 | 64 20 3d 20 54 72 75 65 |erChange|d = True|
|00001430| 3b 0d 0a 7d 0d 0a 0d 0a | 66 75 6e 63 74 69 6f 6e |;..}....|function|
|00001440| 20 43 6f 6e 74 69 6e 75 | 65 53 6f 72 74 28 29 0d | Continu|eSort().|
|00001450| 0a 7b 0d 0a 09 6c 6f 63 | 61 6c 20 55 57 69 6e 64 |.{...loc|al UWind|
|00001460| 6f 77 4c 69 73 74 20 4e | 3b 0d 0a 0d 0a 09 43 6f |owList N|;.....Co|
|00001470| 6d 70 61 72 65 43 6f 75 | 6e 74 20 3d 20 30 3b 0d |mpareCou|nt = 0;.|
|00001480| 0a 09 62 53 6f 72 74 53 | 75 73 70 65 6e 64 65 64 |..bSortS|uspended|
|00001490| 20 3d 20 46 61 6c 73 65 | 3b 0d 0a 0d 0a 09 77 68 | = False|;.....wh|
|000014a0| 69 6c 65 28 43 75 72 72 | 65 6e 74 53 6f 72 74 49 |ile(Curr|entSortI|
|000014b0| 74 65 6d 20 21 3d 20 4e | 6f 6e 65 29 0d 0a 09 7b |tem != N|one)...{|
|000014c0| 0d 0a 09 09 4e 20 3d 20 | 43 75 72 72 65 6e 74 53 |....N = |CurrentS|
|000014d0| 6f 72 74 49 74 65 6d 2e | 4e 65 78 74 3b 0d 0a 09 |ortItem.|Next;...|
|000014e0| 09 41 70 70 65 6e 64 49 | 74 65 6d 28 43 75 72 72 |.AppendI|tem(Curr|
|000014f0| 65 6e 74 53 6f 72 74 49 | 74 65 6d 29 3b 0d 0a 09 |entSortI|tem);...|
|00001500| 09 43 75 72 72 65 6e 74 | 53 6f 72 74 49 74 65 6d |.Current|SortItem|
|00001510| 20 3d 20 4e 3b 0d 0a 0d | 0a 09 09 2f 2f 20 73 70 | = N;...|...// sp|
|00001520| 6c 69 74 20 73 6f 72 74 | 20 6f 76 65 72 20 6d 75 |lit sort| over mu|
|00001530| 6c 74 69 70 6c 65 20 66 | 72 61 6d 65 73 2c 20 69 |ltiple f|rames, i|
|00001540| 66 20 69 74 27 73 20 42 | 49 47 0d 0a 09 09 69 66 |f it's B|IG....if|
|00001550| 28 43 6f 6d 70 61 72 65 | 43 6f 75 6e 74 20 3e 3d |(Compare|Count >=|
|00001560| 20 31 30 30 30 30 20 26 | 26 20 62 53 75 73 70 65 | 10000 &|& bSuspe|
|00001570| 6e 64 61 62 6c 65 53 6f | 72 74 29 0d 0a 09 09 7b |ndableSo|rt)....{|
|00001580| 0d 0a 09 09 09 62 53 6f | 72 74 53 75 73 70 65 6e |.....bSo|rtSuspen|
|00001590| 64 65 64 20 3d 20 54 72 | 75 65 3b 0d 0a 09 09 09 |ded = Tr|ue;.....|
|000015a0| 72 65 74 75 72 6e 3b 0d | 0a 09 09 7d 0d 0a 09 7d |return;.|...}...}|
|000015b0| 09 09 0d 0a 7d 0d 0a 0d | 0a 66 75 6e 63 74 69 6f |....}...|.functio|
|000015c0| 6e 20 54 69 63 6b 28 66 | 6c 6f 61 74 20 44 65 6c |n Tick(f|loat Del|
|000015d0| 74 61 29 0d 0a 7b 0d 0a | 09 69 66 28 62 53 6f 72 |ta)..{..|.if(bSor|
|000015e0| 74 53 75 73 70 65 6e 64 | 65 64 29 0d 0a 09 09 43 |tSuspend|ed)....C|
|000015f0| 6f 6e 74 69 6e 75 65 53 | 6f 72 74 28 29 3b 0d 0a |ontinueS|ort();..|
|00001600| 7d 0d 0a 0d 0a 66 75 6e | 63 74 69 6f 6e 20 55 57 |}....fun|ction UW|
|00001610| 69 6e 64 6f 77 4c 69 73 | 74 20 53 6f 72 74 28 29 |indowLis|t Sort()|
|00001620| 0d 0a 7b 0d 0a 09 6c 6f | 63 61 6c 20 55 57 69 6e |..{...lo|cal UWin|
|00001630| 64 6f 77 4c 69 73 74 20 | 53 3b 0d 0a 09 6c 6f 63 |dowList |S;...loc|
|00001640| 61 6c 20 55 57 69 6e 64 | 6f 77 4c 69 73 74 20 43 |al UWind|owList C|
|00001650| 75 72 72 65 6e 74 49 74 | 65 6d 3b 0d 0a 09 6c 6f |urrentIt|em;...lo|
|00001660| 63 61 6c 20 55 57 69 6e | 64 6f 77 4c 69 73 74 20 |cal UWin|dowList |
|00001670| 50 72 65 76 69 6f 75 73 | 3b 0d 0a 09 6c 6f 63 61 |Previous|;...loca|
|00001680| 6c 20 55 57 69 6e 64 6f | 77 4c 69 73 74 20 42 65 |l UWindo|wList Be|
|00001690| 73 74 3b 0d 0a 09 6c 6f | 63 61 6c 20 55 57 69 6e |st;...lo|cal UWin|
|000016a0| 64 6f 77 4c 69 73 74 20 | 42 65 73 74 50 72 65 76 |dowList |BestPrev|
|000016b0| 3b 0d 0a 0d 0a 09 69 66 | 28 62 54 72 65 65 53 6f |;.....if|(bTreeSo|
|000016c0| 72 74 29 0d 0a 09 7b 0d | 0a 09 09 69 66 28 62 53 |rt)...{.|...if(bS|
|000016d0| 6f 72 74 53 75 73 70 65 | 6e 64 65 64 29 0d 0a 09 |ortSuspe|nded)...|
|000016e0| 09 7b 0d 0a 09 09 09 43 | 6f 6e 74 69 6e 75 65 53 |.{.....C|ontinueS|
|000016f0| 6f 72 74 28 29 3b 0d 0a | 09 09 09 72 65 74 75 72 |ort();..|...retur|
|00001700| 6e 20 53 65 6c 66 3b 0d | 0a 09 09 7d 0d 0a 0d 0a |n Self;.|...}....|
|00001710| 09 09 43 75 72 72 65 6e | 74 53 6f 72 74 49 74 65 |..Curren|tSortIte|
|00001720| 6d 20 3d 20 4e 65 78 74 | 3b 0d 0a 09 09 44 69 73 |m = Next|;....Dis|
|00001730| 63 6f 6e 6e 65 63 74 4c | 69 73 74 28 29 3b 0d 0a |connectL|ist();..|
|00001740| 09 09 43 6f 6e 74 69 6e | 75 65 53 6f 72 74 28 29 |..Contin|ueSort()|
|00001750| 3b 0d 0a 09 09 72 65 74 | 75 72 6e 20 53 65 6c 66 |;....ret|urn Self|
|00001760| 3b 0d 0a 09 7d 0d 0a 0d | 0a 09 43 75 72 72 65 6e |;...}...|..Curren|
|00001770| 74 49 74 65 6d 20 3d 20 | 53 65 6c 66 3b 0d 0a 0d |tItem = |Self;...|
|00001780| 0a 09 77 68 69 6c 65 28 | 43 75 72 72 65 6e 74 49 |..while(|CurrentI|
|00001790| 74 65 6d 20 21 3d 20 4e | 6f 6e 65 29 0d 0a 09 7b |tem != N|one)...{|
|000017a0| 0d 0a 09 09 53 20 3d 20 | 43 75 72 72 65 6e 74 49 |....S = |CurrentI|
|000017b0| 74 65 6d 2e 4e 65 78 74 | 3b 09 42 65 73 74 20 3d |tem.Next|;.Best =|
|000017c0| 20 43 75 72 72 65 6e 74 | 49 74 65 6d 2e 4e 65 78 | Current|Item.Nex|
|000017d0| 74 3b 0d 0a 09 09 50 72 | 65 76 69 6f 75 73 20 3d |t;....Pr|evious =|
|000017e0| 20 43 75 72 72 65 6e 74 | 49 74 65 6d 3b 09 42 65 | Current|Item;.Be|
|000017f0| 73 74 50 72 65 76 20 3d | 20 43 75 72 72 65 6e 74 |stPrev =| Current|
|00001800| 49 74 65 6d 3b 0d 0a 09 | 09 0d 0a 09 09 2f 2f 20 |Item;...|.....// |
|00001810| 46 69 6e 64 20 74 68 65 | 20 62 65 73 74 20 73 65 |Find the| best se|
|00001820| 72 76 65 72 0d 0a 09 09 | 77 68 69 6c 65 28 53 20 |rver....|while(S |
|00001830| 21 3d 20 4e 6f 6e 65 29 | 0d 0a 09 09 7b 0d 0a 09 |!= None)|....{...|
|00001840| 09 09 69 66 28 43 75 72 | 72 65 6e 74 49 74 65 6d |..if(Cur|rentItem|
|00001850| 2e 43 6f 6d 70 61 72 65 | 28 53 2c 20 42 65 73 74 |.Compare|(S, Best|
|00001860| 29 20 3c 3d 20 30 29 20 | 0d 0a 09 09 09 7b 0d 0a |) <= 0) |.....{..|
|00001870| 09 09 09 09 42 65 73 74 | 20 3d 20 53 3b 0d 0a 09 |....Best| = S;...|
|00001880| 09 09 09 42 65 73 74 50 | 72 65 76 20 3d 20 50 72 |...BestP|rev = Pr|
|00001890| 65 76 69 6f 75 73 3b 0d | 0a 09 09 09 7d 0d 0a 09 |evious;.|....}...|
|000018a0| 09 09 0d 0a 09 09 09 50 | 72 65 76 69 6f 75 73 20 |.......P|revious |
|000018b0| 3d 20 53 3b 0d 0a 09 09 | 09 53 20 3d 20 53 2e 4e |= S;....|.S = S.N|
|000018c0| 65 78 74 3b 0d 0a 09 09 | 7d 0d 0a 0d 0a 09 09 2f |ext;....|}....../|
|000018d0| 2f 20 49 66 20 77 65 27 | 72 65 20 6e 6f 74 20 61 |/ If we'|re not a|
|000018e0| 6c 72 65 61 64 79 20 69 | 6e 20 74 68 65 20 72 69 |lready i|n the ri|
|000018f0| 67 68 74 20 6f 72 64 65 | 72 2c 20 6d 6f 76 65 20 |ght orde|r, move |
|00001900| 74 68 65 20 62 65 73 74 | 20 6f 6e 65 20 6e 65 78 |the best| one nex|
|00001910| 74 2e 0d 0a 09 09 69 66 | 28 42 65 73 74 20 21 3d |t.....if|(Best !=|
|00001920| 20 43 75 72 72 65 6e 74 | 49 74 65 6d 2e 4e 65 78 | Current|Item.Nex|
|00001930| 74 29 0d 0a 09 09 7b 0d | 0a 09 09 09 2f 2f 20 44 |t)....{.|....// D|
|00001940| 65 6c 65 74 65 20 42 65 | 73 74 27 73 20 6f 6c 64 |elete Be|st's old|
|00001950| 20 70 6f 73 69 74 69 6f | 6e 0d 0a 09 09 09 42 65 | positio|n.....Be|
|00001960| 73 74 50 72 65 76 2e 4e | 65 78 74 20 3d 20 42 65 |stPrev.N|ext = Be|
|00001970| 73 74 2e 4e 65 78 74 3b | 0d 0a 09 09 09 69 66 28 |st.Next;|.....if(|
|00001980| 42 65 73 74 50 72 65 76 | 2e 4e 65 78 74 20 21 3d |BestPrev|.Next !=|
|00001990| 20 4e 6f 6e 65 29 0d 0a | 09 09 09 09 42 65 73 74 | None)..|....Best|
|000019a0| 50 72 65 76 2e 4e 65 78 | 74 2e 50 72 65 76 20 3d |Prev.Nex|t.Prev =|
|000019b0| 20 42 65 73 74 50 72 65 | 76 3b 0d 0a 0d 0a 09 09 | BestPre|v;......|
|000019c0| 09 2f 2f 20 46 69 78 20 | 53 65 6c 66 20 61 6e 64 |.// Fix |Self and|
|000019d0| 20 42 65 73 74 0d 0a 09 | 09 09 42 65 73 74 2e 50 | Best...|..Best.P|
|000019e0| 72 65 76 20 3d 20 43 75 | 72 72 65 6e 74 49 74 65 |rev = Cu|rrentIte|
|000019f0| 6d 3b 0d 0a 09 09 09 42 | 65 73 74 2e 4e 65 78 74 |m;.....B|est.Next|
|00001a00| 20 3d 20 43 75 72 72 65 | 6e 74 49 74 65 6d 2e 4e | = Curre|ntItem.N|
|00001a10| 65 78 74 3b 0d 0a 09 09 | 09 43 75 72 72 65 6e 74 |ext;....|.Current|
|00001a20| 49 74 65 6d 2e 4e 65 78 | 74 2e 50 72 65 76 20 3d |Item.Nex|t.Prev =|
|00001a30| 20 42 65 73 74 3b 20 0d | 0a 09 09 09 43 75 72 72 | Best; .|....Curr|
|00001a40| 65 6e 74 49 74 65 6d 2e | 4e 65 78 74 20 3d 20 42 |entItem.|Next = B|
|00001a50| 65 73 74 3b 0d 0a 09 09 | 09 0d 0a 09 09 09 2f 2f |est;....|......//|
|00001a60| 20 46 69 78 20 75 70 20 | 53 65 6e 74 69 6e 65 6c | Fix up |Sentinel|
|00001a70| 20 69 66 20 42 65 73 74 | 20 77 61 73 20 61 6c 73 | if Best| was als|
|00001a80| 6f 20 4c 61 73 74 20 0d | 0a 09 09 09 69 66 28 53 |o Last .|....if(S|
|00001a90| 65 6e 74 69 6e 65 6c 2e | 4c 61 73 74 20 3d 3d 20 |entinel.|Last == |
|00001aa0| 42 65 73 74 29 0d 0a 09 | 09 09 7b 0d 0a 09 09 09 |Best)...|..{.....|
|00001ab0| 09 53 65 6e 74 69 6e 65 | 6c 2e 4c 61 73 74 20 3d |.Sentine|l.Last =|
|00001ac0| 20 42 65 73 74 50 72 65 | 76 3b 0d 0a 09 09 09 09 | BestPre|v;......|
|00001ad0| 69 66 28 53 65 6e 74 69 | 6e 65 6c 2e 4c 61 73 74 |if(Senti|nel.Last|
|00001ae0| 20 3d 3d 20 4e 6f 6e 65 | 29 0d 0a 09 09 09 09 09 | == None|).......|
|00001af0| 53 65 6e 74 69 6e 65 6c | 2e 4c 61 73 74 20 3d 20 |Sentinel|.Last = |
|00001b00| 53 65 6e 74 69 6e 65 6c | 3b 0d 0a 09 09 09 7d 0d |Sentinel|;.....}.|
|00001b10| 0a 09 09 7d 0d 0a 0d 0a | 09 09 43 75 72 72 65 6e |...}....|..Curren|
|00001b20| 74 49 74 65 6d 20 3d 20 | 43 75 72 72 65 6e 74 49 |tItem = |CurrentI|
|00001b30| 74 65 6d 2e 4e 65 78 74 | 3b 0d 0a 09 7d 0d 0a 0d |tem.Next|;...}...|
|00001b40| 0a 09 2f 2f 56 61 6c 69 | 64 61 74 65 28 29 3b 0d |..//Vali|date();.|
|00001b50| 0a 09 72 65 74 75 72 6e | 20 53 65 6c 66 3b 0d 0a |..return| Self;..|
|00001b60| 7d 0d 0a 0d 0a 66 75 6e | 63 74 69 6f 6e 20 44 69 |}....fun|ction Di|
|00001b70| 73 63 6f 6e 6e 65 63 74 | 4c 69 73 74 28 29 20 0d |sconnect|List() .|
|00001b80| 0a 7b 0d 0a 09 4e 65 78 | 74 3d 4e 6f 6e 65 3b 0d |.{...Nex|t=None;.|
|00001b90| 0a 09 4c 61 73 74 3d 53 | 65 6c 66 3b 0d 0a 09 50 |..Last=S|elf;...P|
|00001ba0| 72 65 76 3d 4e 6f 6e 65 | 3b 0d 0a 09 42 72 61 6e |rev=None|;...Bran|
|00001bb0| 63 68 4c 65 66 74 20 3d | 20 4e 6f 6e 65 3b 0d 0a |chLeft =| None;..|
|00001bc0| 09 42 72 61 6e 63 68 52 | 69 67 68 74 20 3d 20 4e |.BranchR|ight = N|
|00001bd0| 6f 6e 65 3b 0d 0a 09 50 | 61 72 65 6e 74 4e 6f 64 |one;...P|arentNod|
|00001be0| 65 20 3d 20 4e 6f 6e 65 | 3b 0d 0a 09 49 6e 74 65 |e = None|;...Inte|
|00001bf0| 72 6e 61 6c 43 6f 75 6e | 74 20 3d 20 30 3b 0d 0a |rnalCoun|t = 0;..|
|00001c00| 09 46 61 73 74 53 68 6f | 77 6e 43 6f 75 6e 74 20 |.FastSho|wnCount |
|00001c10| 3d 20 30 3b 0d 0a 09 53 | 65 6e 74 69 6e 65 6c 2e |= 0;...S|entinel.|
|00001c20| 62 49 74 65 6d 4f 72 64 | 65 72 43 68 61 6e 67 65 |bItemOrd|erChange|
|00001c30| 64 20 3d 20 54 72 75 65 | 3b 0d 0a 7d 0d 0a 0d 0a |d = True|;..}....|
|00001c40| 66 75 6e 63 74 69 6f 6e | 20 44 65 73 74 72 6f 79 |function| Destroy|
|00001c50| 4c 69 73 74 28 29 20 0d | 0a 7b 0d 0a 09 6c 6f 63 |List() .|.{...loc|
|00001c60| 61 6c 20 55 57 69 6e 64 | 6f 77 4c 69 73 74 20 4c |al UWind|owList L|
|00001c70| 2c 20 54 65 6d 70 3b 0d | 0a 09 4c 20 3d 20 4e 65 |, Temp;.|..L = Ne|
|00001c80| 78 74 3b 0d 0a 0d 0a 09 | 49 6e 74 65 72 6e 61 6c |xt;.....|Internal|
|00001c90| 43 6f 75 6e 74 20 3d 20 | 30 3b 0d 0a 09 46 61 73 |Count = |0;...Fas|
|00001ca0| 74 53 68 6f 77 6e 43 6f | 75 6e 74 20 3d 20 30 3b |tShownCo|unt = 0;|
|00001cb0| 0d 0a 09 69 66 28 53 65 | 6e 74 69 6e 65 6c 20 21 |...if(Se|ntinel !|
|00001cc0| 3d 20 4e 6f 6e 65 29 0d | 0a 09 09 53 65 6e 74 69 |= None).|...Senti|
|00001cd0| 6e 65 6c 2e 62 49 74 65 | 6d 4f 72 64 65 72 43 68 |nel.bIte|mOrderCh|
|00001ce0| 61 6e 67 65 64 20 3d 20 | 54 72 75 65 3b 0d 0a 0d |anged = |True;...|
|00001cf0| 0a 09 77 68 69 6c 65 28 | 4c 20 21 3d 20 4e 6f 6e |..while(|L != Non|
|00001d00| 65 29 0d 0a 09 7b 0d 0a | 09 09 54 65 6d 70 20 3d |e)...{..|..Temp =|
|00001d10| 20 4c 2e 4e 65 78 74 3b | 0d 0a 09 09 4c 2e 44 65 | L.Next;|....L.De|
|00001d20| 73 74 72 6f 79 4c 69 73 | 74 49 74 65 6d 28 29 3b |stroyLis|tItem();|
|00001d30| 0d 0a 09 09 4c 20 3d 20 | 54 65 6d 70 3b 0d 0a 09 |....L = |Temp;...|
|00001d40| 7d 0d 0a 09 44 65 73 74 | 72 6f 79 4c 69 73 74 49 |}...Dest|royListI|
|00001d50| 74 65 6d 28 29 3b 0d 0a | 7d 0d 0a 0d 0a 66 75 6e |tem();..|}....fun|
|00001d60| 63 74 69 6f 6e 20 44 65 | 73 74 72 6f 79 4c 69 73 |ction De|stroyLis|
|00001d70| 74 49 74 65 6d 28 29 0d | 0a 7b 0d 0a 09 4e 65 78 |tItem().|.{...Nex|
|00001d80| 74 3d 4e 6f 6e 65 3b 0d | 0a 09 4c 61 73 74 3d 53 |t=None;.|..Last=S|
|00001d90| 65 6c 66 3b 0d 0a 09 53 | 65 6e 74 69 6e 65 6c 3d |elf;...S|entinel=|
|00001da0| 4e 6f 6e 65 3b 0d 0a 09 | 50 72 65 76 3d 4e 6f 6e |None;...|Prev=Non|
|00001db0| 65 3b 0d 0a 09 42 72 61 | 6e 63 68 4c 65 66 74 3d |e;...Bra|nchLeft=|
|00001dc0| 4e 6f 6e 65 3b 0d 0a 09 | 42 72 61 6e 63 68 52 69 |None;...|BranchRi|
|00001dd0| 67 68 74 3d 4e 6f 6e 65 | 3b 0d 0a 09 50 61 72 65 |ght=None|;...Pare|
|00001de0| 6e 74 4e 6f 64 65 3d 4e | 6f 6e 65 3b 0d 0a 7d 0d |ntNode=N|one;..}.|
|00001df0| 0a 0d 0a 66 75 6e 63 74 | 69 6f 6e 20 69 6e 74 20 |...funct|ion int |
|00001e00| 43 6f 75 6e 74 53 68 6f | 77 6e 28 29 20 0d 0a 7b |CountSho|wn() ..{|
|00001e10| 0d 0a 09 6c 6f 63 61 6c | 20 69 6e 74 20 43 3b 0d |...local| int C;.|
|00001e20| 0a 09 6c 6f 63 61 6c 20 | 55 57 69 6e 64 6f 77 4c |..local |UWindowL|
|00001e30| 69 73 74 20 49 3b 0d 0a | 0d 0a 09 66 6f 72 28 49 |ist I;..|...for(I|
|00001e40| 20 3d 20 4e 65 78 74 3b | 49 20 21 3d 20 4e 6f 6e | = Next;|I != Non|
|00001e50| 65 3b 20 49 20 3d 20 49 | 2e 4e 65 78 74 29 0d 0a |e; I = I|.Next)..|
|00001e60| 09 09 69 66 28 49 2e 53 | 68 6f 77 54 68 69 73 49 |..if(I.S|howThisI|
|00001e70| 74 65 6d 28 29 29 0d 0a | 09 09 09 43 2b 2b 3b 0d |tem())..|...C++;.|
|00001e80| 0a 0d 0a 09 72 65 74 75 | 72 6e 20 43 3b 0d 0a 7d |....retu|rn C;..}|
|00001e90| 0d 0a 0d 0a 66 75 6e 63 | 74 69 6f 6e 20 55 57 69 |....func|tion UWi|
|00001ea0| 6e 64 6f 77 4c 69 73 74 | 20 43 6f 70 79 45 78 69 |ndowList| CopyExi|
|00001eb0| 73 74 69 6e 67 4c 69 73 | 74 49 74 65 6d 28 43 6c |stingLis|tItem(Cl|
|00001ec0| 61 73 73 3c 55 57 69 6e | 64 6f 77 4c 69 73 74 3e |ass<UWin|dowList>|
|00001ed0| 20 49 74 65 6d 43 6c 61 | 73 73 2c 20 55 57 69 6e | ItemCla|ss, UWin|
|00001ee0| 64 6f 77 4c 69 73 74 20 | 53 6f 75 72 63 65 49 74 |dowList |SourceIt|
|00001ef0| 65 6d 29 0d 0a 7b 0d 0a | 09 6c 6f 63 61 6c 20 55 |em)..{..|.local U|
|00001f00| 57 69 6e 64 6f 77 4c 69 | 73 74 20 49 3b 0d 0a 0d |WindowLi|st I;...|
|00001f10| 0a 09 49 20 3d 20 41 70 | 70 65 6e 64 28 49 74 65 |..I = Ap|pend(Ite|
|00001f20| 6d 43 6c 61 73 73 29 3b | 0d 0a 09 69 66 28 21 53 |mClass);|...if(!S|
|00001f30| 6f 75 72 63 65 49 74 65 | 6d 2e 62 49 6e 74 65 72 |ourceIte|m.bInter|
|00001f40| 6e 61 6c 53 68 6f 77 6e | 29 0d 0a 09 09 53 65 74 |nalShown|)....Set|
|00001f50| 49 6e 74 65 72 6e 61 6c | 53 68 6f 77 6e 28 46 61 |Internal|Shown(Fa|
|00001f60| 6c 73 65 29 3b 0d 0a 09 | 53 65 6e 74 69 6e 65 6c |lse);...|Sentinel|
|00001f70| 2e 62 49 74 65 6d 4f 72 | 64 65 72 43 68 61 6e 67 |.bItemOr|derChang|
|00001f80| 65 64 20 3d 20 54 72 75 | 65 3b 0d 0a 0d 0a 09 72 |ed = Tru|e;.....r|
|00001f90| 65 74 75 72 6e 20 49 3b | 0d 0a 7d 0d 0a 0d 0a 2f |eturn I;|..}..../|
|00001fa0| 2f 20 66 6f 72 20 4c 69 | 73 74 62 6f 78 65 73 20 |/ for Li|stboxes |
|00001fb0| 61 6e 64 20 67 72 69 64 | 73 20 6f 6e 6c 79 20 28 |and grid|s only (|
|00001fc0| 73 6f 20 66 61 72 29 0d | 0a 66 75 6e 63 74 69 6f |so far).|.functio|
|00001fd0| 6e 20 62 6f 6f 6c 20 53 | 68 6f 77 54 68 69 73 49 |n bool S|howThisI|
|00001fe0| 74 65 6d 28 29 0d 0a 7b | 0d 0a 09 72 65 74 75 72 |tem()..{|...retur|
|00001ff0| 6e 20 62 49 6e 74 65 72 | 6e 61 6c 53 68 6f 77 6e |n bInter|nalShown|
|00002000| 3b 0d 0a 7d 0d 0a 0d 0a | 66 75 6e 63 74 69 6f 6e |;..}....|function|
|00002010| 20 55 57 69 6e 64 6f 77 | 4c 69 73 74 20 4e 65 78 | UWindow|List Nex|
|00002020| 74 53 68 6f 77 6e 28 29 | 0d 0a 7b 0d 0a 09 6c 6f |tShown()|..{...lo|
|00002030| 63 61 6c 20 55 57 69 6e | 64 6f 77 4c 69 73 74 20 |cal UWin|dowList |
|00002040| 4c 3b 0d 0a 0d 0a 09 2f | 2f 20 54 45 4d 50 21 21 |L;...../|/ TEMP!!|
|00002050| 0d 0a 09 72 65 74 75 72 | 6e 20 4e 65 78 74 3b 0d |...retur|n Next;.|
|00002060| 0a 0d 0a 09 4c 20 3d 20 | 53 65 6c 66 3b 0d 0a 0d |....L = |Self;...|
|00002070| 0a 09 64 6f 20 7b 0d 0a | 09 09 4c 20 3d 20 4c 2e |..do {..|..L = L.|
|00002080| 4e 65 78 74 3b 0d 0a 09 | 7d 20 75 6e 74 69 6c 28 |Next;...|} until(|
|00002090| 4c 20 3d 3d 20 4e 6f 6e | 65 20 7c 7c 20 4c 2e 53 |L == Non|e || L.S|
|000020a0| 68 6f 77 54 68 69 73 49 | 74 65 6d 28 29 29 3b 0d |howThisI|tem());.|
|000020b0| 0a 0d 0a 09 72 65 74 75 | 72 6e 20 4c 3b 0d 0a 7d |....retu|rn L;..}|
|000020c0| 0d 0a 0d 0a 66 75 6e 63 | 74 69 6f 6e 20 55 57 69 |....func|tion UWi|
|000020d0| 6e 64 6f 77 4c 69 73 74 | 20 50 72 65 76 53 68 6f |ndowList| PrevSho|
|000020e0| 77 6e 28 29 0d 0a 7b 0d | 0a 09 6c 6f 63 61 6c 20 |wn()..{.|..local |
|000020f0| 55 57 69 6e 64 6f 77 4c | 69 73 74 20 4c 3b 0d 0a |UWindowL|ist L;..|
|00002100| 0d 0a 09 4c 20 3d 20 53 | 65 6c 66 3b 0d 0a 0d 0a |...L = S|elf;....|
|00002110| 09 64 6f 20 7b 0d 0a 09 | 09 4c 20 3d 20 4c 2e 50 |.do {...|.L = L.P|
|00002120| 72 65 76 3b 0d 0a 09 7d | 20 75 6e 74 69 6c 28 4c |rev;...}| until(L|
|00002130| 20 3d 3d 20 4e 6f 6e 65 | 20 7c 7c 20 4c 2e 53 68 | == None| || L.Sh|
|00002140| 6f 77 54 68 69 73 49 74 | 65 6d 28 29 29 3b 0d 0a |owThisIt|em());..|
|00002150| 0d 0a 09 72 65 74 75 72 | 6e 20 4c 3b 0d 0a 7d 0d |...retur|n L;..}.|
|00002160| 0a 2f 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 20 54 68 65 |./******|**** The|
|00002170| 73 65 20 74 68 69 6e 67 | 73 20 63 61 6e 20 6f 6e |se thing|s can on|
|00002180| 6c 79 20 62 65 20 63 61 | 6c 6c 65 64 20 6f 6e 20 |ly be ca|lled on |
|00002190| 74 68 65 20 73 65 6e 74 | 69 6e 65 6c 20 2a 2a 2a |the sent|inel ***|
|000021a0| 2a 2a 2a 2a 2a 2a 2a 2f | 0d 0a 0d 0a 2f 2f 20 4f |*******/|....// O|
|000021b0| 4e 4c 59 20 76 61 6c 69 | 64 20 69 66 20 74 68 69 |NLY vali|d if thi|
|000021c0| 73 20 64 6f 65 73 6e 27 | 74 20 6f 76 65 72 72 69 |s doesn'|t overri|
|000021d0| 64 65 20 53 68 6f 77 54 | 68 69 73 49 74 65 6d 20 |de ShowT|hisItem |
|000021e0| 61 6e 64 20 63 61 6c 6c | 73 20 53 65 74 49 6e 74 |and call|s SetInt|
|000021f0| 65 72 6e 61 6c 53 68 6f | 77 6e 20 69 6e 73 74 65 |ernalSho|wn inste|
|00002200| 61 64 2e 0d 0a 66 75 6e | 63 74 69 6f 6e 20 69 6e |ad...fun|ction in|
|00002210| 74 20 46 61 73 74 43 6f | 75 6e 74 53 68 6f 77 6e |t FastCo|untShown|
|00002220| 28 29 20 0d 0a 7b 0d 0a | 09 72 65 74 75 72 6e 20 |() ..{..|.return |
|00002230| 46 61 73 74 53 68 6f 77 | 6e 43 6f 75 6e 74 3b 0d |FastShow|nCount;.|
|00002240| 0a 7d 0d 0a 0d 0a 66 75 | 6e 63 74 69 6f 6e 20 69 |.}....fu|nction i|
|00002250| 6e 74 20 43 6f 75 6e 74 | 28 29 20 0d 0a 7b 0d 0a |nt Count|() ..{..|
|00002260| 09 72 65 74 75 72 6e 20 | 49 6e 74 65 72 6e 61 6c |.return |Internal|
|00002270| 43 6f 75 6e 74 3b 0d 0a | 7d 0d 0a 0d 0a 66 75 6e |Count;..|}....fun|
|00002280| 63 74 69 6f 6e 20 4d 6f | 76 65 49 74 65 6d 53 6f |ction Mo|veItemSo|
|00002290| 72 74 65 64 28 55 57 69 | 6e 64 6f 77 4c 69 73 74 |rted(UWi|ndowList|
|000022a0| 20 49 74 65 6d 29 0d 0a | 7b 0d 0a 09 6c 6f 63 61 | Item)..|{...loca|
|000022b0| 6c 20 55 57 69 6e 64 6f | 77 4c 69 73 74 20 4c 3b |l UWindo|wList L;|
|000022c0| 0d 0a 0d 0a 09 69 66 28 | 62 54 72 65 65 53 6f 72 |.....if(|bTreeSor|
|000022d0| 74 29 0d 0a 09 7b 0d 0a | 09 09 49 74 65 6d 2e 52 |t)...{..|..Item.R|
|000022e0| 65 6d 6f 76 65 28 29 3b | 0d 0a 09 09 41 70 70 65 |emove();|....Appe|
|000022f0| 6e 64 49 74 65 6d 28 49 | 74 65 6d 29 3b 0d 0a 09 |ndItem(I|tem);...|
|00002300| 7d 0d 0a 09 65 6c 73 65 | 0d 0a 09 7b 0d 0a 09 09 |}...else|...{....|
|00002310| 66 6f 72 28 4c 3d 4e 65 | 78 74 3b 4c 20 21 3d 20 |for(L=Ne|xt;L != |
|00002320| 4e 6f 6e 65 3b 20 4c 20 | 3d 20 4c 2e 4e 65 78 74 |None; L |= L.Next|
|00002330| 29 0d 0a 09 09 09 69 66 | 28 43 6f 6d 70 61 72 65 |).....if|(Compare|
|00002340| 28 49 74 65 6d 2c 20 4c | 29 20 3c 3d 20 30 29 20 |(Item, L|) <= 0) |
|00002350| 62 72 65 61 6b 3b 0d 0a | 0d 0a 09 09 69 66 28 4c |break;..|....if(L|
|00002360| 20 21 3d 20 49 74 65 6d | 29 0d 0a 09 09 7b 0d 0a | != Item|)....{..|
|00002370| 09 09 09 49 74 65 6d 2e | 52 65 6d 6f 76 65 28 29 |...Item.|Remove()|
|00002380| 3b 0d 0a 09 09 09 69 66 | 28 4c 20 3d 3d 20 4e 6f |;.....if|(L == No|
|00002390| 6e 65 29 0d 0a 09 09 09 | 09 41 70 70 65 6e 64 49 |ne).....|.AppendI|
|000023a0| 74 65 6d 28 49 74 65 6d | 29 3b 0d 0a 09 09 09 65 |tem(Item|);.....e|
|000023b0| 6c 73 65 0d 0a 09 09 09 | 09 4c 2e 49 6e 73 65 72 |lse.....|.L.Inser|
|000023c0| 74 49 74 65 6d 42 65 66 | 6f 72 65 28 49 74 65 6d |tItemBef|ore(Item|
|000023d0| 29 3b 0d 0a 09 09 7d 0d | 0a 09 7d 0d 0a 7d 0d 0a |);....}.|..}..}..|
|000023e0| 0d 0a 66 75 6e 63 74 69 | 6f 6e 20 53 65 74 75 70 |..functi|on Setup|
|000023f0| 53 65 6e 74 69 6e 65 6c | 28 6f 70 74 69 6f 6e 61 |Sentinel|(optiona|
|00002400| 6c 20 62 6f 6f 6c 20 62 | 49 6e 54 72 65 65 53 6f |l bool b|InTreeSo|
|00002410| 72 74 29 0d 0a 7b 0d 0a | 09 4c 61 73 74 20 3d 20 |rt)..{..|.Last = |
|00002420| 53 65 6c 66 3b 0d 0a 09 | 4e 65 78 74 20 3d 20 4e |Self;...|Next = N|
|00002430| 6f 6e 65 3b 0d 0a 09 50 | 72 65 76 20 3d 20 4e 6f |one;...P|rev = No|
|00002440| 6e 65 3b 0d 0a 09 42 72 | 61 6e 63 68 4c 65 66 74 |ne;...Br|anchLeft|
|00002450| 20 3d 20 4e 6f 6e 65 3b | 0d 0a 09 42 72 61 6e 63 | = None;|...Branc|
|00002460| 68 52 69 67 68 74 20 3d | 20 4e 6f 6e 65 3b 0d 0a |hRight =| None;..|
|00002470| 09 50 61 72 65 6e 74 4e | 6f 64 65 20 3d 20 4e 6f |.ParentN|ode = No|
|00002480| 6e 65 3b 0d 0a 09 53 65 | 6e 74 69 6e 65 6c 20 3d |ne;...Se|ntinel =|
|00002490| 20 53 65 6c 66 3b 0d 0a | 09 49 6e 74 65 72 6e 61 | Self;..|.Interna|
|000024a0| 6c 43 6f 75 6e 74 20 3d | 20 30 3b 0d 0a 09 46 61 |lCount =| 0;...Fa|
|000024b0| 73 74 53 68 6f 77 6e 43 | 6f 75 6e 74 20 3d 20 30 |stShownC|ount = 0|
|000024c0| 3b 0d 0a 09 62 49 74 65 | 6d 4f 72 64 65 72 43 68 |;...bIte|mOrderCh|
|000024d0| 61 6e 67 65 64 20 3d 20 | 54 72 75 65 3b 0d 0a 09 |anged = |True;...|
|000024e0| 62 54 72 65 65 53 6f 72 | 74 20 3d 20 62 49 6e 54 |bTreeSor|t = bInT|
|000024f0| 72 65 65 53 6f 72 74 3b | 0d 0a 7d 0d 0a 0d 0a 66 |reeSort;|..}....f|
|00002500| 75 6e 63 74 69 6f 6e 20 | 56 61 6c 69 64 61 74 65 |unction |Validate|
|00002510| 28 29 0d 0a 7b 0d 0a 09 | 6c 6f 63 61 6c 20 55 57 |()..{...|local UW|
|00002520| 69 6e 64 6f 77 4c 69 73 | 74 20 49 2c 20 50 72 65 |indowLis|t I, Pre|
|00002530| 76 69 6f 75 73 3b 0d 0a | 09 6c 6f 63 61 6c 20 69 |vious;..|.local i|
|00002540| 6e 74 20 43 6f 75 6e 74 | 3b 0d 0a 0d 0a 09 69 66 |nt Count|;.....if|
|00002550| 28 53 65 6e 74 69 6e 65 | 6c 20 21 3d 20 53 65 6c |(Sentine|l != Sel|
|00002560| 66 29 0d 0a 09 7b 0d 0a | 09 09 4c 6f 67 28 22 43 |f)...{..|..Log("C|
|00002570| 61 6c 6c 69 6e 67 20 53 | 65 6e 74 69 6e 65 6c 2e |alling S|entinel.|
|00002580| 56 61 6c 69 64 61 74 65 | 28 29 20 66 72 6f 6d 20 |Validate|() from |
|00002590| 22 24 53 65 6c 66 29 3b | 0d 0a 09 09 53 65 6e 74 |"$Self);|....Sent|
|000025a0| 69 6e 65 6c 2e 56 61 6c | 69 64 61 74 65 28 29 3b |inel.Val|idate();|
|000025b0| 0d 0a 09 09 72 65 74 75 | 72 6e 3b 0d 0a 09 7d 0d |....retu|rn;...}.|
|000025c0| 0a 0d 0a 09 4c 6f 67 28 | 22 42 45 47 49 4e 20 56 |....Log(|"BEGIN V|
|000025d0| 61 6c 69 64 61 74 65 28 | 29 3a 20 22 24 43 6c 61 |alidate(|): "$Cla|
|000025e0| 73 73 29 3b 0d 0a 0d 0a | 09 43 6f 75 6e 74 20 3d |ss);....|.Count =|
|000025f0| 20 30 3b 0d 0a 09 50 72 | 65 76 69 6f 75 73 20 3d | 0;...Pr|evious =|
|00002600| 20 53 65 6c 66 3b 0d 0a | 0d 0a 09 66 6f 72 28 49 | Self;..|...for(I|
|00002610| 20 3d 20 4e 65 78 74 3b | 20 49 20 21 3d 20 4e 6f | = Next;| I != No|
|00002620| 6e 65 3b 20 49 20 3d 20 | 49 2e 4e 65 78 74 29 0d |ne; I = |I.Next).|
|00002630| 0a 09 7b 0d 0a 09 09 4c | 6f 67 28 22 43 68 65 63 |..{....L|og("Chec|
|00002640| 6b 69 6e 67 20 69 74 65 | 6d 3a 20 22 24 43 6f 75 |king ite|m: "$Cou|
|00002650| 6e 74 29 3b 0d 0a 0d 0a | 09 09 69 66 28 49 2e 53 |nt);....|..if(I.S|
|00002660| 65 6e 74 69 6e 65 6c 20 | 21 3d 20 53 65 6c 66 29 |entinel |!= Self)|
|00002670| 0d 0a 09 09 09 4c 6f 67 | 28 22 20 20 20 49 2e 53 |.....Log|(" I.S|
|00002680| 65 6e 74 69 6e 65 6c 20 | 72 65 66 65 72 65 6e 63 |entinel |referenc|
|00002690| 65 20 69 73 20 62 72 6f | 6b 65 6e 22 29 3b 0d 0a |e is bro|ken");..|
|000026a0| 09 0d 0a 09 09 69 66 28 | 49 2e 50 72 65 76 20 21 |.....if(|I.Prev !|
|000026b0| 3d 20 50 72 65 76 69 6f | 75 73 29 0d 0a 09 09 09 |= Previo|us).....|
|000026c0| 4c 6f 67 28 22 20 20 20 | 49 2e 50 72 65 76 20 72 |Log(" |I.Prev r|
|000026d0| 65 66 65 72 65 6e 63 65 | 20 69 73 20 62 72 6f 6b |eference| is brok|
|000026e0| 65 6e 22 29 3b 0d 0a 0d | 0a 09 09 69 66 28 4c 61 |en");...|...if(La|
|000026f0| 73 74 20 3d 3d 20 49 20 | 26 26 20 49 2e 4e 65 78 |st == I |&& I.Nex|
|00002700| 74 20 21 3d 20 4e 6f 6e | 65 29 0d 0a 09 09 09 4c |t != Non|e).....L|
|00002710| 6f 67 28 22 20 20 20 49 | 74 65 6d 20 69 73 20 53 |og(" I|tem is S|
|00002720| 65 6e 74 69 6e 65 6c 2e | 4c 61 73 74 20 62 75 74 |entinel.|Last but|
|00002730| 20 49 74 65 6d 20 68 61 | 73 20 76 61 6c 69 64 20 | Item ha|s valid |
|00002740| 4e 65 78 74 22 29 3b 0d | 0a 0d 0a 09 09 69 66 28 |Next");.|.....if(|
|00002750| 49 2e 4e 65 78 74 20 3d | 3d 20 4e 6f 6e 65 20 26 |I.Next =|= None &|
|00002760| 26 20 4c 61 73 74 20 21 | 3d 20 49 29 0d 0a 09 09 |& Last !|= I)....|
|00002770| 09 4c 6f 67 28 22 20 20 | 20 49 74 65 6d 20 69 73 |.Log(" | Item is|
|00002780| 20 49 74 65 6d 2e 4e 65 | 78 74 20 69 73 20 6e 6f | Item.Ne|xt is no|
|00002790| 6e 65 2c 20 62 75 74 20 | 49 74 65 6d 20 69 73 20 |ne, but |Item is |
|000027a0| 6e 6f 74 20 53 65 6e 74 | 69 6e 65 6c 2e 4c 61 73 |not Sent|inel.Las|
|000027b0| 74 22 29 3b 0d 0a 0d 0a | 09 09 50 72 65 76 69 6f |t");....|..Previo|
|000027c0| 75 73 20 3d 20 49 3b 0d | 0a 09 09 43 6f 75 6e 74 |us = I;.|...Count|
|000027d0| 2b 2b 3b 0d 0a 09 7d 0d | 0a 0d 0a 09 4c 6f 67 28 |++;...}.|....Log(|
|000027e0| 22 45 4e 44 20 56 61 6c | 69 64 61 74 65 28 29 3a |"END Val|idate():|
|000027f0| 20 22 24 43 6c 61 73 73 | 29 3b 09 09 0d 0a 7d 0d | "$Class|);....}.|
|00002800| 0a 0d 0a 2f 2f 20 46 6f | 72 20 73 65 6e 74 69 6e |...// Fo|r sentin|
|00002810| 65 6c 20 6f 6e 6c 79 0d | 0a 66 75 6e 63 74 69 6f |el only.|.functio|
|00002820| 6e 20 55 57 69 6e 64 6f | 77 4c 69 73 74 20 41 70 |n UWindo|wList Ap|
|00002830| 70 65 6e 64 28 43 6c 61 | 73 73 3c 55 57 69 6e 64 |pend(Cla|ss<UWind|
|00002840| 6f 77 4c 69 73 74 3e 20 | 43 29 0d 0a 7b 0d 0a 09 |owList> |C)..{...|
|00002850| 6c 6f 63 61 6c 20 55 57 | 69 6e 64 6f 77 4c 69 73 |local UW|indowLis|
|00002860| 74 20 4e 65 77 45 6c 65 | 6d 65 6e 74 3b 0d 0a 0d |t NewEle|ment;...|
|00002870| 0a 09 4e 65 77 45 6c 65 | 6d 65 6e 74 20 3d 20 43 |..NewEle|ment = C|
|00002880| 72 65 61 74 65 49 74 65 | 6d 28 43 29 3b 0d 0a 09 |reateIte|m(C);...|
|00002890| 41 70 70 65 6e 64 49 74 | 65 6d 28 4e 65 77 45 6c |AppendIt|em(NewEl|
|000028a0| 65 6d 65 6e 74 29 3b 09 | 0d 0a 09 0d 0a 09 72 65 |ement);.|......re|
|000028b0| 74 75 72 6e 20 4e 65 77 | 45 6c 65 6d 65 6e 74 3b |turn New|Element;|
|000028c0| 0d 0a 7d 0d 0a 0d 0a 66 | 75 6e 63 74 69 6f 6e 20 |..}....f|unction |
|000028d0| 41 70 70 65 6e 64 49 74 | 65 6d 28 55 57 69 6e 64 |AppendIt|em(UWind|
|000028e0| 6f 77 4c 69 73 74 20 4e | 65 77 45 6c 65 6d 65 6e |owList N|ewElemen|
|000028f0| 74 29 0d 0a 7b 0d 0a 09 | 6c 6f 63 61 6c 20 55 57 |t)..{...|local UW|
|00002900| 69 6e 64 6f 77 4c 69 73 | 74 20 4e 6f 64 65 2c 20 |indowLis|t Node, |
|00002910| 4f 6c 64 4e 6f 64 65 2c | 20 54 65 6d 70 3b 0d 0a |OldNode,| Temp;..|
|00002920| 09 6c 6f 63 61 6c 20 69 | 6e 74 20 54 65 73 74 3b |.local i|nt Test;|
|00002930| 0d 0a 0d 0a 09 69 66 28 | 62 54 72 65 65 53 6f 72 |.....if(|bTreeSor|
|00002940| 74 29 0d 0a 09 7b 0d 0a | 09 09 2f 2f 20 43 68 65 |t)...{..|..// Che|
|00002950| 63 6b 20 66 6f 72 20 77 | 6f 72 73 74 20 63 61 73 |ck for w|orst cas|
|00002960| 65 73 21 0d 0a 09 09 69 | 66 28 4e 65 78 74 20 21 |es!....i|f(Next !|
|00002970| 3d 20 4e 6f 6e 65 20 26 | 26 20 4c 61 73 74 20 21 |= None &|& Last !|
|00002980| 3d 20 53 65 6c 66 29 0d | 0a 09 09 7b 0d 0a 09 09 |= Self).|...{....|
|00002990| 09 69 66 28 43 6f 6d 70 | 61 72 65 28 4e 65 77 45 |.if(Comp|are(NewE|
|000029a0| 6c 65 6d 65 6e 74 2c 20 | 4c 61 73 74 29 20 3e 3d |lement, |Last) >=|
|000029b0| 20 30 29 0d 0a 09 09 09 | 7b 0d 0a 09 09 09 09 2f | 0).....|{....../|
|000029c0| 2f 20 70 75 74 20 61 74 | 20 65 6e 64 20 6f 66 20 |/ put at| end of |
|000029d0| 6c 69 73 74 0d 0a 09 09 | 09 09 4e 6f 64 65 20 3d |list....|..Node =|
|000029e0| 20 4c 61 73 74 3b 0d 0a | 09 09 09 09 4e 6f 64 65 | Last;..|....Node|
|000029f0| 2e 49 6e 73 65 72 74 49 | 74 65 6d 41 66 74 65 72 |.InsertI|temAfter|
|00002a00| 28 4e 65 77 45 6c 65 6d | 65 6e 74 2c 20 46 61 6c |(NewElem|ent, Fal|
|00002a10| 73 65 29 3b 0d 0a 09 09 | 09 09 4e 6f 64 65 2e 47 |se);....|..Node.G|
|00002a20| 72 61 66 74 52 69 67 68 | 74 28 4e 65 77 45 6c 65 |raftRigh|t(NewEle|
|00002a30| 6d 65 6e 74 29 3b 0d 0a | 09 09 09 09 72 65 74 75 |ment);..|....retu|
|00002a40| 72 6e 3b 09 0d 0a 09 09 | 09 7d 0d 0a 0d 0a 09 09 |rn;.....|.}......|
|00002a50| 09 69 66 28 43 6f 6d 70 | 61 72 65 28 4e 65 77 45 |.if(Comp|are(NewE|
|00002a60| 6c 65 6d 65 6e 74 2c 20 | 4e 65 78 74 29 20 3c 3d |lement, |Next) <=|
|00002a70| 20 30 29 0d 0a 09 09 09 | 7b 0d 0a 09 09 09 09 2f | 0).....|{....../|
|00002a80| 2f 20 70 75 74 20 61 74 | 20 66 72 6f 6e 74 20 6f |/ put at| front o|
|00002a90| 66 20 6c 69 73 74 0d 0a | 09 09 09 09 4e 6f 64 65 |f list..|....Node|
|00002aa0| 20 3d 20 4e 65 78 74 3b | 0d 0a 09 09 09 09 4e 6f | = Next;|......No|
|00002ab0| 64 65 2e 49 6e 73 65 72 | 74 49 74 65 6d 42 65 66 |de.Inser|tItemBef|
|00002ac0| 6f 72 65 28 4e 65 77 45 | 6c 65 6d 65 6e 74 29 3b |ore(NewE|lement);|
|00002ad0| 0d 0a 09 09 09 09 4e 6f | 64 65 2e 47 72 61 66 74 |......No|de.Graft|
|00002ae0| 4c 65 66 74 28 4e 65 77 | 45 6c 65 6d 65 6e 74 29 |Left(New|Element)|
|00002af0| 3b 0d 0a 09 09 09 09 72 | 65 74 75 72 6e 3b 0d 0a |;......r|eturn;..|
|00002b00| 09 09 09 7d 0d 0a 09 09 | 7d 0d 0a 0d 0a 09 09 4e |...}....|}......N|
|00002b10| 6f 64 65 20 3d 20 53 65 | 6c 66 3b 0d 0a 09 09 77 |ode = Se|lf;....w|
|00002b20| 68 69 6c 65 28 54 72 75 | 65 29 0d 0a 09 09 7b 0d |hile(Tru|e)....{.|
|00002b30| 0a 09 09 09 69 66 28 4e | 6f 64 65 20 3d 3d 20 53 |....if(N|ode == S|
|00002b40| 65 6c 66 29 0d 0a 09 09 | 09 09 54 65 73 74 20 3d |elf)....|..Test =|
|00002b50| 20 31 3b 0d 0a 09 09 09 | 65 6c 73 65 0d 0a 09 09 | 1;.....|else....|
|00002b60| 09 09 54 65 73 74 20 3d | 20 43 6f 6d 70 61 72 65 |..Test =| Compare|
|00002b70| 28 4e 65 77 45 6c 65 6d | 65 6e 74 2c 20 4e 6f 64 |(NewElem|ent, Nod|
|00002b80| 65 29 3b 0d 0a 0d 0a 09 | 09 09 2f 2f 20 73 70 65 |e);.....|..// spe|
|00002b90| 63 69 61 6c 20 63 61 73 | 65 20 66 6f 72 20 65 71 |cial cas|e for eq|
|00002ba0| 75 61 6c 69 74 79 0d 0a | 09 09 09 69 66 28 54 65 |uality..|...if(Te|
|00002bb0| 73 74 20 3d 3d 20 30 29 | 0d 0a 09 09 09 7b 0d 0a |st == 0)|.....{..|
|00002bc0| 09 09 09 09 4e 6f 64 65 | 2e 49 6e 73 65 72 74 49 |....Node|.InsertI|
|00002bd0| 74 65 6d 41 66 74 65 72 | 28 4e 65 77 45 6c 65 6d |temAfter|(NewElem|
|00002be0| 65 6e 74 2c 20 46 61 6c | 73 65 29 3b 0d 0a 09 09 |ent, Fal|se);....|
|00002bf0| 09 09 72 65 74 75 72 6e | 3b 0d 0a 09 09 09 7d 0d |..return|;.....}.|
|00002c00| 0a 09 09 09 65 6c 73 65 | 0d 0a 09 09 09 69 66 28 |....else|.....if(|
|00002c10| 54 65 73 74 20 3e 20 30 | 29 0d 0a 09 09 09 7b 0d |Test > 0|).....{.|
|00002c20| 0a 09 09 09 09 2f 2f 20 | 54 72 61 76 65 72 73 65 |.....// |Traverse|
|00002c30| 20 72 69 67 68 74 0d 0a | 09 09 09 09 4f 6c 64 4e | right..|....OldN|
|00002c40| 6f 64 65 20 3d 20 4e 6f | 64 65 3b 0d 0a 09 09 09 |ode = No|de;.....|
|00002c50| 09 4e 6f 64 65 20 3d 20 | 4e 6f 64 65 2e 42 72 61 |.Node = |Node.Bra|
|00002c60| 6e 63 68 52 69 67 68 74 | 3b 0d 0a 09 09 09 09 69 |nchRight|;......i|
|00002c70| 66 28 4e 6f 64 65 20 3d | 3d 20 4e 6f 6e 65 29 0d |f(Node =|= None).|
|00002c80| 0a 09 09 09 09 7b 0d 0a | 09 09 09 09 09 2f 2f 20 |.....{..|.....// |
|00002c90| 4d 6f 76 65 20 70 61 73 | 74 20 65 71 75 61 6c 20 |Move pas|t equal |
|00002ca0| 76 61 6c 75 65 73 0d 0a | 09 09 09 09 09 54 65 6d |values..|.....Tem|
|00002cb0| 70 20 3d 20 4f 6c 64 4e | 6f 64 65 3b 0d 0a 09 09 |p = OldN|ode;....|
|00002cc0| 09 09 09 77 68 69 6c 65 | 28 54 65 6d 70 2e 4e 65 |...while|(Temp.Ne|
|00002cd0| 78 74 20 21 3d 20 4e 6f | 6e 65 20 26 26 20 54 65 |xt != No|ne && Te|
|00002ce0| 6d 70 2e 4e 65 78 74 2e | 50 61 72 65 6e 74 4e 6f |mp.Next.|ParentNo|
|00002cf0| 64 65 20 3d 3d 20 4e 6f | 6e 65 29 0d 0a 09 09 09 |de == No|ne).....|
|00002d00| 09 09 09 54 65 6d 70 20 | 3d 20 54 65 6d 70 2e 4e |...Temp |= Temp.N|
|00002d10| 65 78 74 3b 0d 0a 09 09 | 09 09 09 0d 0a 09 09 09 |ext;....|........|
|00002d20| 09 09 54 65 6d 70 2e 49 | 6e 73 65 72 74 49 74 65 |..Temp.I|nsertIte|
|00002d30| 6d 41 66 74 65 72 28 4e | 65 77 45 6c 65 6d 65 6e |mAfter(N|ewElemen|
|00002d40| 74 2c 20 46 61 6c 73 65 | 29 3b 0d 0a 09 09 09 09 |t, False|);......|
|00002d50| 09 4f 6c 64 4e 6f 64 65 | 2e 47 72 61 66 74 52 69 |.OldNode|.GraftRi|
|00002d60| 67 68 74 28 4e 65 77 45 | 6c 65 6d 65 6e 74 29 3b |ght(NewE|lement);|
|00002d70| 0d 0a 09 09 09 09 09 72 | 65 74 75 72 6e 3b 0d 0a |.......r|eturn;..|
|00002d80| 09 09 09 09 7d 0d 0a 09 | 09 09 7d 0d 0a 09 09 09 |....}...|..}.....|
|00002d90| 65 6c 73 65 0d 0a 09 09 | 09 7b 0d 0a 09 09 09 09 |else....|.{......|
|00002da0| 2f 2f 20 54 72 61 76 65 | 72 73 65 20 6c 65 66 74 |// Trave|rse left|
|00002db0| 0d 0a 09 09 09 09 4f 6c | 64 4e 6f 64 65 20 3d 20 |......Ol|dNode = |
|00002dc0| 4e 6f 64 65 3b 0d 0a 09 | 09 09 09 4e 6f 64 65 20 |Node;...|...Node |
|00002dd0| 3d 20 4e 6f 64 65 2e 42 | 72 61 6e 63 68 4c 65 66 |= Node.B|ranchLef|
|00002de0| 74 3b 0d 0a 09 09 09 09 | 69 66 28 4e 6f 64 65 20 |t;......|if(Node |
|00002df0| 3d 3d 20 4e 6f 6e 65 29 | 0d 0a 09 09 09 09 7b 0d |== None)|......{.|
|00002e00| 0a 09 09 09 09 09 4f 6c | 64 4e 6f 64 65 2e 49 6e |......Ol|dNode.In|
|00002e10| 73 65 72 74 49 74 65 6d | 42 65 66 6f 72 65 28 4e |sertItem|Before(N|
|00002e20| 65 77 45 6c 65 6d 65 6e | 74 29 3b 0d 0a 09 09 09 |ewElemen|t);.....|
|00002e30| 09 09 4f 6c 64 4e 6f 64 | 65 2e 47 72 61 66 74 4c |..OldNod|e.GraftL|
|00002e40| 65 66 74 28 4e 65 77 45 | 6c 65 6d 65 6e 74 29 3b |eft(NewE|lement);|
|00002e50| 0d 0a 09 09 09 09 09 72 | 65 74 75 72 6e 3b 0d 0a |.......r|eturn;..|
|00002e60| 09 09 09 09 7d 0d 0a 09 | 09 09 7d 0d 0a 09 09 7d |....}...|..}....}|
|00002e70| 0d 0a 09 7d 0d 0a 09 65 | 6c 73 65 0d 0a 09 09 44 |...}...e|lse....D|
|00002e80| 6f 41 70 70 65 6e 64 49 | 74 65 6d 28 4e 65 77 45 |oAppendI|tem(NewE|
|00002e90| 6c 65 6d 65 6e 74 29 3b | 0d 0a 7d 0d 0a 0d 0a 66 |lement);|..}....f|
|00002ea0| 75 6e 63 74 69 6f 6e 20 | 44 6f 41 70 70 65 6e 64 |unction |DoAppend|
|00002eb0| 49 74 65 6d 28 55 57 69 | 6e 64 6f 77 4c 69 73 74 |Item(UWi|ndowList|
|00002ec0| 20 4e 65 77 45 6c 65 6d | 65 6e 74 29 0d 0a 7b 0d | NewElem|ent)..{.|
|00002ed0| 0a 09 4e 65 77 45 6c 65 | 6d 65 6e 74 2e 4e 65 78 |..NewEle|ment.Nex|
|00002ee0| 74 20 3d 20 4e 6f 6e 65 | 3b 0d 0a 09 4c 61 73 74 |t = None|;...Last|
|00002ef0| 2e 4e 65 78 74 20 3d 20 | 4e 65 77 45 6c 65 6d 65 |.Next = |NewEleme|
|00002f00| 6e 74 3b 0d 0a 09 4e 65 | 77 45 6c 65 6d 65 6e 74 |nt;...Ne|wElement|
|00002f10| 2e 50 72 65 76 20 3d 20 | 4c 61 73 74 3b 0d 0a 09 |.Prev = |Last;...|
|00002f20| 4e 65 77 45 6c 65 6d 65 | 6e 74 2e 53 65 6e 74 69 |NewEleme|nt.Senti|
|00002f30| 6e 65 6c 20 3d 20 53 65 | 6c 66 3b 0d 0a 09 4e 65 |nel = Se|lf;...Ne|
|00002f40| 77 45 6c 65 6d 65 6e 74 | 2e 42 72 61 6e 63 68 4c |wElement|.BranchL|
|00002f50| 65 66 74 20 3d 20 4e 6f | 6e 65 3b 0d 0a 09 4e 65 |eft = No|ne;...Ne|
|00002f60| 77 45 6c 65 6d 65 6e 74 | 2e 42 72 61 6e 63 68 52 |wElement|.BranchR|
|00002f70| 69 67 68 74 20 3d 20 4e | 6f 6e 65 3b 0d 0a 09 4e |ight = N|one;...N|
|00002f80| 65 77 45 6c 65 6d 65 6e | 74 2e 50 61 72 65 6e 74 |ewElemen|t.Parent|
|00002f90| 4e 6f 64 65 20 3d 20 4e | 6f 6e 65 3b 0d 0a 09 4c |Node = N|one;...L|
|00002fa0| 61 73 74 20 3d 20 4e 65 | 77 45 6c 65 6d 65 6e 74 |ast = Ne|wElement|
|00002fb0| 3b 0d 0a 09 53 65 6e 74 | 69 6e 65 6c 2e 49 6e 74 |;...Sent|inel.Int|
|00002fc0| 65 72 6e 61 6c 43 6f 75 | 6e 74 2b 2b 3b 0d 0a 09 |ernalCou|nt++;...|
|00002fd0| 69 66 28 4e 65 77 45 6c | 65 6d 65 6e 74 2e 62 49 |if(NewEl|ement.bI|
|00002fe0| 6e 74 65 72 6e 61 6c 53 | 68 6f 77 6e 29 0d 0a 09 |nternalS|hown)...|
|00002ff0| 09 53 65 6e 74 69 6e 65 | 6c 2e 46 61 73 74 53 68 |.Sentine|l.FastSh|
|00003000| 6f 77 6e 43 6f 75 6e 74 | 2b 2b 3b 0d 0a 09 53 65 |ownCount|++;...Se|
|00003010| 6e 74 69 6e 65 6c 2e 62 | 49 74 65 6d 4f 72 64 65 |ntinel.b|ItemOrde|
|00003020| 72 43 68 61 6e 67 65 64 | 20 3d 20 54 72 75 65 3b |rChanged| = True;|
|00003030| 0d 0a 7d 0d 0a 0d 0a 0d | 0a 2f 2f 20 46 6f 72 20 |..}.....|.// For |
|00003040| 73 65 6e 74 69 6e 65 6c | 20 6f 6e 6c 79 0d 0a 66 |sentinel| only..f|
|00003050| 75 6e 63 74 69 6f 6e 20 | 55 57 69 6e 64 6f 77 4c |unction |UWindowL|
|00003060| 69 73 74 20 49 6e 73 65 | 72 74 28 43 6c 61 73 73 |ist Inse|rt(Class|
|00003070| 3c 55 57 69 6e 64 6f 77 | 4c 69 73 74 3e 20 43 29 |<UWindow|List> C)|
|00003080| 0d 0a 7b 0d 0a 09 6c 6f | 63 61 6c 20 55 57 69 6e |..{...lo|cal UWin|
|00003090| 64 6f 77 4c 69 73 74 20 | 4e 65 77 45 6c 65 6d 65 |dowList |NewEleme|
|000030a0| 6e 74 3b 0d 0a 0d 0a 09 | 4e 65 77 45 6c 65 6d 65 |nt;.....|NewEleme|
|000030b0| 6e 74 20 3d 20 43 72 65 | 61 74 65 49 74 65 6d 28 |nt = Cre|ateItem(|
|000030c0| 43 29 3b 0d 0a 09 49 6e | 73 65 72 74 49 74 65 6d |C);...In|sertItem|
|000030d0| 28 4e 65 77 45 6c 65 6d | 65 6e 74 29 3b 0d 0a 09 |(NewElem|ent);...|
|000030e0| 0d 0a 09 72 65 74 75 72 | 6e 20 4e 65 77 45 6c 65 |...retur|n NewEle|
|000030f0| 6d 65 6e 74 3b 0d 0a 7d | 0d 0a 0d 0a 66 75 6e 63 |ment;..}|....func|
|00003100| 74 69 6f 6e 20 49 6e 73 | 65 72 74 49 74 65 6d 28 |tion Ins|ertItem(|
|00003110| 55 57 69 6e 64 6f 77 4c | 69 73 74 20 4e 65 77 45 |UWindowL|ist NewE|
|00003120| 6c 65 6d 65 6e 74 29 0d | 0a 7b 0d 0a 09 4e 65 77 |lement).|.{...New|
|00003130| 45 6c 65 6d 65 6e 74 2e | 4e 65 78 74 20 3d 20 4e |Element.|Next = N|
|00003140| 65 78 74 3b 0d 0a 09 69 | 66 28 4e 65 78 74 20 21 |ext;...i|f(Next !|
|00003150| 3d 20 4e 6f 6e 65 29 0d | 0a 09 09 4e 65 78 74 2e |= None).|...Next.|
|00003160| 50 72 65 76 20 3d 20 4e | 65 77 45 6c 65 6d 65 6e |Prev = N|ewElemen|
|00003170| 74 3b 0d 0a 09 4e 65 78 | 74 20 3d 20 4e 65 77 45 |t;...Nex|t = NewE|
|00003180| 6c 65 6d 65 6e 74 3b 0d | 0a 09 69 66 28 4c 61 73 |lement;.|..if(Las|
|00003190| 74 20 3d 3d 20 53 65 6c | 66 29 0d 0a 09 09 4c 61 |t == Sel|f)....La|
|000031a0| 73 74 20 3d 20 4e 65 78 | 74 3b 0d 0a 09 4e 65 77 |st = Nex|t;...New|
|000031b0| 45 6c 65 6d 65 6e 74 2e | 50 72 65 76 20 3d 20 53 |Element.|Prev = S|
|000031c0| 65 6c 66 3b 0d 0a 09 4e | 65 77 45 6c 65 6d 65 6e |elf;...N|ewElemen|
|000031d0| 74 2e 53 65 6e 74 69 6e | 65 6c 20 3d 20 53 65 6c |t.Sentin|el = Sel|
|000031e0| 66 3b 09 0d 0a 09 4e 65 | 77 45 6c 65 6d 65 6e 74 |f;....Ne|wElement|
|000031f0| 2e 42 72 61 6e 63 68 4c | 65 66 74 20 3d 20 4e 6f |.BranchL|eft = No|
|00003200| 6e 65 3b 0d 0a 09 4e 65 | 77 45 6c 65 6d 65 6e 74 |ne;...Ne|wElement|
|00003210| 2e 42 72 61 6e 63 68 52 | 69 67 68 74 20 3d 20 4e |.BranchR|ight = N|
|00003220| 6f 6e 65 3b 0d 0a 09 4e | 65 77 45 6c 65 6d 65 6e |one;...N|ewElemen|
|00003230| 74 2e 50 61 72 65 6e 74 | 4e 6f 64 65 20 3d 20 4e |t.Parent|Node = N|
|00003240| 6f 6e 65 3b 0d 0a 09 53 | 65 6e 74 69 6e 65 6c 2e |one;...S|entinel.|
|00003250| 49 6e 74 65 72 6e 61 6c | 43 6f 75 6e 74 2b 2b 3b |Internal|Count++;|
|00003260| 0d 0a 09 69 66 28 4e 65 | 77 45 6c 65 6d 65 6e 74 |...if(Ne|wElement|
|00003270| 2e 62 49 6e 74 65 72 6e | 61 6c 53 68 6f 77 6e 29 |.bIntern|alShown)|
|00003280| 0d 0a 09 09 53 65 6e 74 | 69 6e 65 6c 2e 46 61 73 |....Sent|inel.Fas|
|00003290| 74 53 68 6f 77 6e 43 6f | 75 6e 74 2b 2b 3b 0d 0a |tShownCo|unt++;..|
|000032a0| 09 53 65 6e 74 69 6e 65 | 6c 2e 62 49 74 65 6d 4f |.Sentine|l.bItemO|
|000032b0| 72 64 65 72 43 68 61 6e | 67 65 64 20 3d 20 54 72 |rderChan|ged = Tr|
|000032c0| 75 65 3b 0d 0a 7d 0d 0a | 0d 0a 2f 2f 20 46 6f 72 |ue;..}..|..// For|
|000032d0| 20 73 65 6e 74 69 6e 65 | 6c 20 6f 6e 6c 79 0d 0a | sentine|l only..|
|000032e0| 66 75 6e 63 74 69 6f 6e | 20 55 57 69 6e 64 6f 77 |function| UWindow|
|000032f0| 4c 69 73 74 20 46 69 6e | 64 45 6e 74 72 79 28 69 |List Fin|dEntry(i|
|00003300| 6e 74 20 49 6e 64 65 78 | 29 0d 0a 7b 0d 0a 09 6c |nt Index|)..{...l|
|00003310| 6f 63 61 6c 20 55 57 69 | 6e 64 6f 77 4c 69 73 74 |ocal UWi|ndowList|
|00003320| 20 6c 3b 0d 0a 09 6c 6f | 63 61 6c 20 69 6e 74 20 | l;...lo|cal int |
|00003330| 69 3b 0d 0a 0d 0a 09 6c | 20 3d 20 4e 65 78 74 3b |i;.....l| = Next;|
|00003340| 0d 0a 09 66 6f 72 28 69 | 3d 30 3b 69 3c 49 6e 64 |...for(i|=0;i<Ind|
|00003350| 65 78 3b 69 2b 2b 29 20 | 0d 0a 09 7b 0d 0a 09 09 |ex;i++) |...{....|
|00003360| 6c 20 3d 20 6c 2e 4e 65 | 78 74 3b 0d 0a 09 09 69 |l = l.Ne|xt;....i|
|00003370| 66 28 6c 3d 3d 4e 6f 6e | 65 29 20 72 65 74 75 72 |f(l==Non|e) retur|
|00003380| 6e 20 4e 6f 6e 65 3b 0d | 0a 09 7d 0d 0a 09 72 65 |n None;.|..}...re|
|00003390| 74 75 72 6e 20 6c 3b 0d | 0a 7d 0d 0a 0d 0a 66 75 |turn l;.|.}....fu|
|000033a0| 6e 63 74 69 6f 6e 20 43 | 6c 65 61 72 28 29 0d 0a |nction C|lear()..|
|000033b0| 7b 0d 0a 09 49 6e 74 65 | 72 6e 61 6c 43 6f 75 6e |{...Inte|rnalCoun|
|000033c0| 74 20 3d 20 30 3b 0d 0a | 09 46 61 73 74 53 68 6f |t = 0;..|.FastSho|
|000033d0| 77 6e 43 6f 75 6e 74 20 | 3d 20 30 3b 0d 0a 09 50 |wnCount |= 0;...P|
|000033e0| 61 72 65 6e 74 4e 6f 64 | 65 20 3d 20 4e 6f 6e 65 |arentNod|e = None|
|000033f0| 3b 0d 0a 09 42 72 61 6e | 63 68 4c 65 66 74 20 3d |;...Bran|chLeft =|
|00003400| 20 4e 6f 6e 65 3b 0d 0a | 09 42 72 61 6e 63 68 52 | None;..|.BranchR|
|00003410| 69 67 68 74 20 3d 20 4e | 6f 6e 65 3b 0d 0a 09 62 |ight = N|one;...b|
|00003420| 49 74 65 6d 4f 72 64 65 | 72 43 68 61 6e 67 65 64 |ItemOrde|rChanged|
|00003430| 20 3d 20 54 72 75 65 3b | 0d 0a 09 4e 65 78 74 20 | = True;|...Next |
|00003440| 3d 20 4e 6f 6e 65 3b 09 | 0d 0a 09 4c 61 73 74 20 |= None;.|...Last |
|00003450| 3d 20 53 65 6c 66 3b 0d | 0a 7d 0d 0a 00 |= Self;.|.}... |
+--------+-------------------------+-------------------------+--------+--------+